LeetCode - 450 解題紀錄 / August LeetCoding Challenge Day 31
題目: LeetCode - 450. Delete Node in a BST
題目說明
給一個 Binary Search Tree,和一個整數 key
,如果找到 key
的節點就將其刪除。
解題思路
由於 BST 有左子樹的值皆比根的值小,右子樹的值皆比根的值大的特性,所以我們先判斷當前 node
的值及 key
的大小,若 key
較大則往左邊走,否則往右邊走。若兩者的值相等代表要刪除當前的 node,若是當前的 node
只有一邊的子樹,那就直接接上即可,否則要從右子樹中找出最小的值頂替目前的 node
才能符合 BST 的特性。
參考解法
1 | class Solution { |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論