chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

刪除二叉搜索樹(shù)中的節(jié)點(diǎn)

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:五分鐘學(xué)算法 ? 2020-06-23 10:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天分享的題目來(lái)源于 LeetCode 第 450 號(hào)問(wèn)題:刪除二叉搜索樹(shù)中的節(jié)點(diǎn)。雖然它的難度是中等,但實(shí)際上很好理解,請(qǐng)往下看!

題目描述

給定一個(gè)二叉搜索樹(shù)的根節(jié)點(diǎn)root和一個(gè)值key,刪除二叉搜索樹(shù)中的key對(duì)應(yīng)的節(jié)點(diǎn),并保證二叉搜索樹(shù)的性質(zhì)不變。返回二叉搜索樹(shù)(有可能被更新)的根節(jié)點(diǎn)的引用。

一般來(lái)說(shuō),刪除節(jié)點(diǎn)可分為兩個(gè)步驟:

首先找到需要?jiǎng)h除的節(jié)點(diǎn);

如果找到了,刪除它。

說(shuō)明:要求算法時(shí)間復(fù)雜度為 O(h),h 為樹(shù)的高度。

示例:

root=[5,3,6,2,4,null,7] key=3 5 / 36 / 247 給定需要?jiǎng)h除的節(jié)點(diǎn)值是3,所以我們首先找到3這個(gè)節(jié)點(diǎn),然后刪除它。 一個(gè)正確的答案是[5,4,6,2,null,null,7], 如下圖所示。 5 / 46 / 27 另一個(gè)正確答案是[5,2,6,null,4,null,7]。 5 / 26 47

題目解析

在二叉搜索樹(shù)上刪除一個(gè)節(jié)點(diǎn),這道題目有一個(gè)隱含的條件,就是樹(shù)上節(jié)點(diǎn)的值不重復(fù)。

另外題目還要求時(shí)間復(fù)雜度需要保證 O(h) 這里的 h 表示的是二叉樹(shù)的高度。

其實(shí)這個(gè)題目是分成兩個(gè)步驟的,第一個(gè)是找到對(duì)應(yīng)的節(jié)點(diǎn),第二個(gè)是刪除節(jié)點(diǎn)。

因?yàn)槭嵌嫠阉鳂?shù),對(duì)于樹(shù)上每個(gè)節(jié)點(diǎn)來(lái)說(shuō),其右子樹(shù)的節(jié)點(diǎn)都要大于其左子樹(shù)的節(jié)點(diǎn),那么要找對(duì)應(yīng)節(jié)點(diǎn),我們可以從根節(jié)點(diǎn)開(kāi)始,一路比較,大的話就去右邊找,小的話就去左邊找,這樣每次我們都往下,可以保證時(shí)間復(fù)雜度是 O(h)。

當(dāng)我們找到了要?jiǎng)h除的節(jié)點(diǎn),在刪除這一步就會(huì)有很多的細(xì)節(jié),主要是因?yàn)槲覀冃枰{(diào)整余下的結(jié)構(gòu),以維持二叉搜索樹(shù)的性質(zhì)。

針對(duì)這個(gè)問(wèn)題,我們可以分情況討論:

5 / 36 / 247 / 18

情況 1:當(dāng)刪除的節(jié)點(diǎn)沒(méi)有左右子樹(shù),比如上圖的 4、8、1
這時(shí)直接刪除即可,樹(shù)依舊可以保持二叉搜索樹(shù)的性質(zhì)

情況 2:當(dāng)刪除的節(jié)點(diǎn)有左子樹(shù)沒(méi)有右子樹(shù),比如上圖的 2
這時(shí)我們只需要將整個(gè)左子樹(shù)移到當(dāng)前位置即可
也就是將左子樹(shù)的根節(jié)點(diǎn)放到刪除節(jié)點(diǎn)的位置,其余不變

情況 3:當(dāng)刪除的節(jié)點(diǎn)沒(méi)有左子樹(shù)有右子樹(shù),比如上圖的 6、7
這時(shí)我們只需要將整個(gè)右子樹(shù)移到當(dāng)前位置即可
也就是將右子樹(shù)的根節(jié)點(diǎn)放到刪除節(jié)點(diǎn)的位置,其余不變

情況 4:當(dāng)刪除的節(jié)點(diǎn)既有左子樹(shù)又有右子樹(shù),比如上圖的 5、3
這時(shí)就有兩種方法供選擇:
去到左子樹(shù)中,找到值最大節(jié)點(diǎn),將右子樹(shù)全部移到這個(gè)節(jié)點(diǎn)下
去到右子樹(shù)中,找到值最小節(jié)點(diǎn),將左子樹(shù)全部移到這個(gè)節(jié)點(diǎn)下

通過(guò)上面的討論分析,我們有了大致的思路。在實(shí)現(xiàn)方面,我們可以借助遞歸來(lái)巧妙地達(dá)到刪除對(duì)應(yīng)節(jié)點(diǎn)的目的。

圖片描述

參考代碼

//五分鐘學(xué)算法 publicTreeNodedeleteNode(TreeNoderoot,intkey){ if(root==null){ returnnull; } //當(dāng)前遍歷到的節(jié)點(diǎn)大于要找的節(jié)點(diǎn),去左邊繼續(xù)找 if(root.val>key){ root.left=deleteNode(root.left,key); } //當(dāng)前遍歷到的節(jié)點(diǎn)小于要找的節(jié)點(diǎn),去右邊繼續(xù)找 elseif(root.val

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4759

    瀏覽量

    97102
  • 二叉樹(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    12854

原文標(biāo)題:五分鐘看懂一道中等難度的算法題

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    `lv_obj_tree.h` 在 **LVGL v9** 的位置和作用

    /core/lv_obj_tree.h 核心作用 這個(gè)文件是 LVGL 核心模塊的一部分,主要負(fù)責(zé) UI 對(duì)象樹(shù)的管理,包括: 對(duì)象的父子關(guān)系維護(hù)(添加、刪除子對(duì)象); 對(duì)象樹(shù)的遍歷(例如查找子對(duì)象、祖先
    發(fā)表于 11-13 15:49

    通過(guò)優(yōu)化代碼來(lái)提高M(jìn)CU運(yùn)行效率

    選擇時(shí)間復(fù)雜度低的算法。 根據(jù)訪問(wèn)模式選擇數(shù)據(jù)結(jié)構(gòu)。頻繁查找用哈希表,有序數(shù)據(jù)用二叉樹(shù)等。 查表法:對(duì)于復(fù)雜的數(shù)學(xué)計(jì)算(如sin, log),或者協(xié)議解析,預(yù)先計(jì)算好結(jié)果存于數(shù)組,用空間換時(shí)間
    發(fā)表于 11-12 08:21

    按圖搜索1688商品的API接口

    ? ?在電商場(chǎng)景,按圖搜索商品功能(即通過(guò)上傳圖片查找相似商品)極大提升了用戶(hù)體驗(yàn)和效率。1688作為阿里巴巴旗下的批發(fā)平臺(tái),雖然沒(méi)有直接公開(kāi)的“按圖搜索”API,但我們可以借助阿里云的圖像
    的頭像 發(fā)表于 10-22 15:05 ?210次閱讀
    按圖<b class='flag-5'>搜索</b>1688商品的API接口

    請(qǐng)問(wèn)rtt studio 的文件夾打紅什么意思?

    rtt studio 的文件夾打紅什么意思?而且文件夾里面實(shí)際是有文件的,但是瀏覽不出來(lái)。
    發(fā)表于 09-18 06:34

    產(chǎn)品搜索與過(guò)濾API接口

    ? 在現(xiàn)代化電子商務(wù)和應(yīng)用程序開(kāi)發(fā),高效的產(chǎn)品搜索與過(guò)濾功能至關(guān)重要。它能幫助用戶(hù)快速找到所需商品,提升用戶(hù)體驗(yàn)和轉(zhuǎn)化率。產(chǎn)品搜索與過(guò)濾API接口作為后端服務(wù)的核心組件,允許開(kāi)發(fā)者通過(guò)編程方式實(shí)現(xiàn)
    的頭像 發(fā)表于 07-24 14:35 ?345次閱讀
    產(chǎn)品<b class='flag-5'>搜索</b>與過(guò)濾API接口

    刪除工作空間中的工程項(xiàng)目

    首先我們先刪除剛剛新建的工程模板。
    的頭像 發(fā)表于 05-06 09:27 ?1110次閱讀
    <b class='flag-5'>刪除</b>工作空間中的工程項(xiàng)目

    電機(jī)溫度監(jiān)測(cè)系統(tǒng)低功耗無(wú)線節(jié)點(diǎn)模塊設(shè)計(jì)

    完整資料~~~*附件:電機(jī)溫度監(jiān)測(cè)系統(tǒng)低功耗無(wú)線節(jié)點(diǎn)模塊設(shè)計(jì).pdf 【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 04-30 00:42

    使用AD2428時(shí),通過(guò)主節(jié)點(diǎn)發(fā)現(xiàn)從節(jié)點(diǎn)的過(guò)程遇到的問(wèn)題求解

    在使用AD2428時(shí),通過(guò)主節(jié)點(diǎn)發(fā)現(xiàn)從節(jié)點(diǎn)的過(guò)程,遇到以下問(wèn)題: 按照手冊(cè)中將0x9寄存器配置成0x1,讀回0x17寄存器的值為0x29,且主節(jié)點(diǎn)未發(fā)現(xiàn)從
    發(fā)表于 04-15 07:14

    百度搜索全量上線DeepSeek滿(mǎn)血版,開(kāi)啟AI搜索新體驗(yàn)

    近日,百度搜索迎來(lái)了重大更新,全量上線了DeepSeek滿(mǎn)血版。這一更新意味著用戶(hù)現(xiàn)在可以在百度App中體驗(yàn)到更加智能、高效的搜索服務(wù)。 用戶(hù)只需在百度App輸入任意搜索詞,完成一輪
    的頭像 發(fā)表于 02-18 15:15 ?1930次閱讀

    Kaggle知識(shí)點(diǎn):7種超參數(shù)搜索方法

    問(wèn)題。一些常見(jiàn)的超參數(shù)例子包括梯度基算法的學(xué)習(xí)率,或者決策樹(shù)算法樹(shù)的深度,這些可以直接影響模型準(zhǔn)確擬合訓(xùn)練數(shù)據(jù)的能力。超參數(shù)調(diào)優(yōu)涉及在復(fù)雜的、高維的超參數(shù)空間中
    的頭像 發(fā)表于 02-08 14:28 ?1674次閱讀
    Kaggle知識(shí)點(diǎn):7種超參數(shù)<b class='flag-5'>搜索</b>方法

    hyper v 刪除,怎么樣刪除hyper-v的虛擬機(jī)?

    步驟進(jìn)行操作: ? ?1.打開(kāi)Hyper-V管理器: ? ?在Windows桌面上,點(diǎn)擊“開(kāi)始”按鈕。 ? ?在搜索輸入“Hyper-V管理器”并打開(kāi)它。 ? ?2.停止虛擬機(jī): ? ?在Hyper-V管理器,找到要
    的頭像 發(fā)表于 02-05 13:39 ?1472次閱讀
    hyper v <b class='flag-5'>刪除</b>,怎么樣<b class='flag-5'>刪除</b>hyper-v<b class='flag-5'>中</b>的虛擬機(jī)?

    樹(shù)科技在物聯(lián)網(wǎng)方面

    樹(shù)科技在物聯(lián)網(wǎng)領(lǐng)域有多方面的涉及和發(fā)展,以下是一些具體信息: 傳感器技術(shù)合作 與傳感器公司合作:宇樹(shù)科技與一些傳感器技術(shù)公司有合作,例如奧比光為宇樹(shù)機(jī)器狗提供激光雷達(dá)及結(jié)構(gòu)光傳感
    發(fā)表于 02-04 06:48

    飛凌嵌入式ElfBoard ELF 1板卡-初識(shí)設(shè)備樹(shù)之設(shè)備組織架構(gòu)

    下圖是一個(gè)設(shè)備樹(shù)文件的基本架構(gòu)示例:簡(jiǎn)單概括一下有這幾個(gè)部分:節(jié)點(diǎn)節(jié)點(diǎn)的命名方式一般為node-name@unit-address:其中node-name為節(jié)點(diǎn)名稱(chēng),unit-addr
    發(fā)表于 01-08 09:01

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-初識(shí)設(shè)備樹(shù)之設(shè)備樹(shù)組成和結(jié)構(gòu)

    的name和value。在設(shè)備樹(shù),可描述的信息包括:一、CPU的數(shù)量和類(lèi)別;、內(nèi)存基地址和大??;三、總線和橋;四、外設(shè)連接;五、中斷控制器和中斷使用情況;六、GPIO控制器和GPIO使用情況;七
    發(fā)表于 01-08 08:32

    飛凌嵌入式ElfBoard ELF 1板卡-初識(shí)設(shè)備樹(shù)之設(shè)備樹(shù)組成和結(jié)構(gòu)

    的name和value。在設(shè)備樹(shù),可描述的信息包括:一、CPU的數(shù)量和類(lèi)別;、內(nèi)存基地址和大??;三、總線和橋;四、外設(shè)連接;五、中斷控制器和中斷使用情況;六、GPIO控制器和GPIO使用情況;七
    發(fā)表于 01-07 09:16