【Day22 中高難度算法挑戰(zhàn)】刪除二叉搜索樹中的節(jié)點(diǎn)
介紹
總而言之是時(shí)候利用暑假鍛煉一下算法技術(shù),一提算法面試就面露難色的情形總不能一直持續(xù)下去。本欄目面向有一定基礎(chǔ)的編程愛好者,每天(如果up不鴿)分享并解析一道LeetCode中高難度題目(通常是hard)。有興趣的小伙伴可以一起跟著做并且討論解法。目前的教材是花花醬的Leetcode Problem List【1】.
適合人群:
有一定算法基礎(chǔ),但是還未能順利通過筆試/面試,總覺得算法題目想不明白的你。
不適合人群:
算法入門級選手(一上來就做難題可能并不合適,建議首先專注簡單/中等題目)
非常不適合人群:
算法競賽選手(這種小兒科的問題完全是在浪費(fèi)您的時(shí)間)
過往題目在這里!

刪除二叉搜索樹中的節(jié)點(diǎn)
題目看這里,leetcode第450題,middle難度:
https://leetcode.com/problems/delete-node-in-a-bst/
強(qiáng)烈建議讀者自己先做(不過真的會有讀者嗎,笑),有任何問題歡迎在評論區(qū)討論,up看到了會及時(shí)回復(fù)。做完了歡迎在評論區(qū)打卡~
解析
這里的解題方法實(shí)際上是分類討論。把種種可能都在腦海里過一遍,比較精彩的地方是當(dāng)要?jiǎng)h除的節(jié)點(diǎn)同時(shí)有左右兩個(gè)子樹。這里我們可以現(xiàn)在右子樹里找到最小的節(jié)點(diǎn),然后把左子樹接上去。當(dāng)然左右子樹反過來也可。

思考樂園
“我們可以現(xiàn)在右子樹里找到最小的節(jié)點(diǎn),然后把左子樹接上去”,為什么可以這樣做?如果左右子樹反過來要怎么做?歡迎將答案寫在評論區(qū)~
音樂推薦
一眨眼暑假過了兩個(gè)月,雖然不知道怎么回事,但是我們的題目數(shù)量也來到了22道!We have been this far......今天推薦的歌曲是,來自夏色祭Official的V圈金曲單相思,送給正在回憶過去那個(gè)夏天的你。
教材鏈接
【1】https://zxi.mytechroad.com/blog/leetcode-problem-categories/