刪除二叉搜尋樹中的節點

2021-10-18 10:53:25 字數 542 閱讀 5962

刪除二叉搜尋樹中的節點

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...