修剪二叉搜尋樹

2021-10-01 10:41:03 字數 653 閱讀 9829

給定乙個二叉搜尋樹,同時給定最小邊界l 和最大邊界 r。通過修剪二叉搜尋樹,使得所有節點的值在[l, r]中 (r>=l) 。你可能需要改變樹的根節點,所以結果應當返回修剪好的二叉搜尋樹的新的根節點。

示例 1:

輸入:

1

/ \ 0

2

l = 1

r = 2

輸出:

1

\ 2

示例 2:

輸入:

3

/ \ 0

4 \

2/1

l = 1

r = 3

輸出:

3/2

/1

分析:先分析在乙個節點上會發生幾種情況,其值在[l, r]範圍內,其值小於l,其值大於r。

利用遞迴的思想,呼叫自身分解問題,對每個節點作出判斷,返回修剪後的節點,之後再將節點連線起來。

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

}

二叉搜尋樹 修剪二叉搜尋樹

第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...

修剪二叉搜尋樹

分治遞迴 遞迴函式的功能是使以當前節點為根的樹修剪完畢且返回處理完成後的樹根節點 當根節點的值小於下界時,根節點以及其左子樹應全部丟棄,此時返回對根節點的右孩子遞迴呼叫函式的返回值。當根節點的值大於上界時,根節點以及其右子樹應全部丟棄,此時返回對根節點的左孩子遞迴呼叫函式的返回值。若根節點的值處於下...

修剪二叉搜尋樹

題目描述 給你二叉搜尋樹的根節點 root 同時給定最小邊界low 和最大邊界 high。通過修剪二叉搜尋樹,使得所有節點的值在 low,high 中。修剪樹不應該改變保留在樹中的元素的相對結構 即,如果沒有被移除,原有的父代子代關係都應當保留 可以證明,存在唯一的答案。所以結果應當返回修剪好的二叉...