色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

刪除二叉搜索樹中的節點

算法與數據結構 ? 來源:五分鐘學算法 ? 2020-06-23 10:33 ? 次閱讀

今天分享的題目來源于 LeetCode 第 450 號問題:刪除二叉搜索樹中的節點。雖然它的難度是中等,但實際上很好理解,請往下看!

題目描述

給定一個二叉搜索樹的根節點root和一個值key,刪除二叉搜索樹中的key對應的節點,并保證二叉搜索樹的性質不變。返回二叉搜索樹(有可能被更新)的根節點的引用。

一般來說,刪除節點可分為兩個步驟:

首先找到需要刪除的節點;

如果找到了,刪除它。

說明:要求算法時間復雜度為 O(h),h 為樹的高度。

示例:

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

題目解析

在二叉搜索樹上刪除一個節點,這道題目有一個隱含的條件,就是樹上節點的值不重復。

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

其實這個題目是分成兩個步驟的,第一個是找到對應的節點,第二個是刪除節點。

因為是二叉搜索樹,對于樹上每個節點來說,其右子樹的節點都要大于其左子樹的節點,那么要找對應節點,我們可以從根節點開始,一路比較,大的話就去右邊找,小的話就去左邊找,這樣每次我們都往下,可以保證時間復雜度是 O(h)。

當我們找到了要刪除的節點,在刪除這一步就會有很多的細節,主要是因為我們需要調整余下的結構,以維持二叉搜索樹的性質。

針對這個問題,我們可以分情況討論:

5 / 36 / 247 / 18

情況 1:當刪除的節點沒有左右子樹,比如上圖的 4、8、1
這時直接刪除即可,樹依舊可以保持二叉搜索樹的性質

情況 2:當刪除的節點有左子樹沒有右子樹,比如上圖的 2
這時我們只需要將整個左子樹移到當前位置即可
也就是將左子樹的根節點放到刪除節點的位置,其余不變

情況 3:當刪除的節點沒有左子樹有右子樹,比如上圖的 6、7
這時我們只需要將整個右子樹移到當前位置即可
也就是將右子樹的根節點放到刪除節點的位置,其余不變

情況 4:當刪除的節點既有左子樹又有右子樹,比如上圖的 5、3
這時就有兩種方法供選擇:
去到左子樹中,找到值最大節點,將右子樹全部移到這個節點下
去到右子樹中,找到值最小節點,將左子樹全部移到這個節點下

通過上面的討論分析,我們有了大致的思路。在實現方面,我們可以借助遞歸來巧妙地達到刪除對應節點的目的。

圖片描述

參考代碼

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4622

    瀏覽量

    93067
  • 二叉樹
    +關注

    關注

    0

    文章

    74

    瀏覽量

    12351

原文標題:五分鐘看懂一道中等難度的算法題

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-初識設備之設備組成和結構

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

    飛凌嵌入式ElfBoard ELF 1板卡-初識設備之設備組成和結構

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

    邏輯組件的流程塊節點通常出于什么用途

    邏輯組件的流程塊節點是流程圖、狀態圖、序列圖等圖表的基本元素,它們用于表示業務流程、工作流程、算法步驟、系統狀態等。這些節點在軟件開發、項目管理、自動化控制、工程設計、科學研究等領
    的頭像 發表于 10-15 14:38 ?174次閱讀

    什么是默克爾(Merkle Tree)?如何計算默克爾根?

    01 默克爾的概念 默克爾(Merkle Tree)是一種特殊的二叉樹,它的每個節點都存儲了一個數據塊的哈希值。哈希值是一種可以將任意長度的數據轉換為固定長度的字符串的算法,它具有
    的頭像 發表于 09-30 18:22 ?1010次閱讀
    什么是默克爾<b class='flag-5'>樹</b>(Merkle Tree)?如何計算默克爾根?

    ubuntu刪除的文件怎么恢復

    在Ubuntu系統刪除的文件可以通過多種方法進行恢復。本文將詳細介紹Ubuntu系統刪除文件的恢復方法,包括使用命令行工具、文件恢復軟件以及預防文件丟失的策略。本文將分為以下幾個
    的頭像 發表于 08-30 15:10 ?1579次閱讀

    節點電壓法流入節點電流怎么判斷正負

    節點電壓法(Node Voltage Method)是一種在電路分析中常用的方法,用于求解電路節點的電壓。在這種方法,我們通常選擇一個參考節點
    的頭像 發表于 08-06 17:24 ?2439次閱讀

    節點電壓法的實質是什么

    節點電壓法(Node Voltage Method)是一種在電路分析中常用的方法,主要用于求解線性電路的電壓和電流。它基于基爾霍夫電流定律(KCL)和歐姆定律,通過建立節點電壓方程來求解電路
    的頭像 發表于 08-06 17:08 ?1087次閱讀

    修改“u-boot”設備的電源后,使用\"STM32CubeProgrammer\"下載會一直重復下載,為什么?

    我自己做的板子電源部分沒有使用\"stpmic\",而是使用分立式電源,我在移植OpenSTLinux(5.1.0)時遇到了問題,我修改“u-boot”設備的電源后
    發表于 07-23 07:57

    節點電壓法電壓源怎么處理

    節點電壓法(Node Voltage Method,簡稱NVM)是電路分析的一種基本方法,主要應用于求解線性電路節點電壓。在節點電壓法
    的頭像 發表于 07-12 09:20 ?3345次閱讀

    指電極上覆蓋敏感材料的阻值計算

    覆蓋的敏感材料厚度超出指厚度時計算電阻,是否可以視作指電極指間電阻多個周期串聯后與超出指厚度部分敏感材料電阻并聯
    發表于 07-05 14:48

    什么是工業控制網絡節點?常用的節點有哪些

    工業控制網絡節點是指在工業控制網絡,用于實現數據采集、處理、傳輸和控制等功能的設備。它們是工業控制系統的重要組成部分,對于保證工業生產的穩定性、可靠性和高效性具有重要意義。 一、工業控制網絡
    的頭像 發表于 06-11 10:36 ?1187次閱讀

    服務器數據恢復—存儲卷被刪除后重建如何恢復被刪除卷的數據?

    服務器存儲數據恢復環境: 某品牌FlexStorage P5730服務器存儲,存儲中有一組由24塊硬盤組建的RAID5陣列,包括1塊熱備硬盤。 服務器存儲故障: 存儲的2個卷被刪除刪除之后重建了一個新卷。需要恢復之
    的頭像 發表于 06-05 11:03 ?685次閱讀

    谷歌Play商店強制推行應用賬戶刪除政策

     如今,該新規已正式施行,Google將開始在應用詳情展示刪除賬戶方式。Android Authority報道指出,“賬戶可刪除”標識已出現在應用數據安全部分。
    的頭像 發表于 05-27 17:49 ?1263次閱讀

    Windows驅動器分區可以刪除

    可以刪除Windows驅動器分區。刪除驅動器分區的操作可以在Windows操作系統的磁盤管理工具完成。然而,在執行此操作之前,請務必提前備份重要的數據,以免丟失。 以下是
    的頭像 發表于 02-14 17:00 ?1525次閱讀

    語音數據集在智能語音搜索的應用與挑戰

    揮著重要作用,為系統提供了豐富的語音數據和信息,提高了搜索的準確性和效率。本文將詳細介紹語音數據集在智能語音搜索的應用、面臨的挑戰以及未來的發展趨勢。 、語音數據集在智能語音
    的頭像 發表于 01-18 15:09 ?570次閱讀
    主站蜘蛛池模板: 免费国产午夜理论不卡| 欧美videosgratis杂交| 神马午夜不卡片| 国产成人女人在线视频观看 | 精品国产乱码久久久久久免费| 用震蛋调教女性下面视频| 暖暖 视频 免费 高清 在线观看 | 国产亚洲人成网站在线观看播放 | 九九热在线视频| qvod 电影| 91福利在线观看| 热热久久超碰精品中文字幕| 国产免费人成在线视频视频| 中国农村妇女真实BBWBBWBBW| 欧亚一卡二卡日本一卡二卡| 国产精品热久久高潮AV袁孑怡| 且试天下芒果免费观看| 国产精品久久久久成人免费| 在线亚洲黄色| 十分钟免费视频大全在线观看| 韩日午夜在线资源一区二区| DASD-700美谷朱里| 野花日本完整版在线观看免费高清 | 亚洲无吗视频| 欧美无码专区| 久草在线草a免费线看| 超碰国产视频免费播放| 艳鉧动漫1~6全集观看在线| 日韩欧美中文字幕在线二视频| 国产最新地址| 成人亚洲视频| 伊人久久大香线蕉综合电影 | 精品四虎国产在免费观看| qvod电影网站| 一本道久在线综合道| 视频专区亚洲欧美日韩| 蜜芽国产在线精品欧美| 国色天香社区视频免费高清3 | 年轻的母亲4线在线观看完整| 果冻传媒在线播放| 丰满少妇67194视频|