刪除二叉搜尋樹中的節點
class
solution
cur-
>left=root-
>left;
//把要刪除的結點root左子樹放在cur的左孩子位置
treenode*tmp=root;
//把root結點儲存一下,下面去刪除
root=root-
>right;
//返回舊root的右孩子作為新root
delete tmp;
//刪除節點
return root;}}
if(root-
>val>key) root-
>left=
deletenode
(root-
>left,key);if
(root-
>val>right=
deletenode
(root-
>right,key)
;return root;}}
;
二叉搜尋樹 刪除二叉搜尋樹中的節點
這裡就把平衡二叉樹中刪除節點遇到的情況都搞清楚。第一種情況 沒找到刪除的節點,遍歷到空節點直接返回了 找到刪除的節點 第二種情況 左右孩子都為空 葉子節點 直接刪除節點,返回null為根節點 第三種情況 刪除節點的左孩子為空,右孩子不為空,刪除節點,右孩子補位,返回右孩子為根節點 第四種情況 刪除節...
二叉搜尋樹 刪除節點
前幾天寫了簡單的二叉排序樹的實現,僅僅提供了插入和查詢操作,沒有寫刪除給定節點操作。現在補充過來,不過這個代價似乎太大了點 二叉排序樹的刪除操作主要有兩點要注意 1 必須修改的是刪除節點父節點的資訊 2 有四種情況需要考慮 刪除節點有無左右子樹的 4個組合 再加上一點就是要細心,考慮各種情況,例如根...
LeetCode 刪除二叉搜尋樹中的節點
示例 root 5,3,6,2,4,null,7 key 3 5 3 6 2 4 7 給定需要刪除的節點值是 3,所以我們首先找到 3 這個節點,然後刪除它。乙個正確的答案是 5,4,6,2,null,null,7 如下圖所示。5 4 6 2 7 另乙個正確答案是 5,2,6,null,4,null...