leetcode 669 修剪二叉搜尋樹

2021-09-17 04:07:53 字數 734 閱讀 3023

給定乙個二叉搜尋樹,同時給定最小邊界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

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution else if(root.val > r)else if(root.val < l)

root.left = trimbst(root.left,l,r);

root.right = trimbst(root.right,l,r);

return root;

}}

LeetCode 669 修剪二叉搜尋樹

給定乙個二叉搜尋樹,同時給定最小邊界l 和最大邊界 r。通過修剪二叉搜尋樹,使得所有節點的值在 l,r 中 r l 你可能需要改變樹的根節點,所以結果應當返回修剪好的二叉搜尋樹的新的根節點。如果當前節點值大於r,則說明該節點的右子樹都大於r 所以可直接捨棄該節點的右子樹,然後再繼續往左子樹 找打 r...

leetcode669 修剪二叉搜尋樹

思路分析 這道題與 leetcode 刪除二叉搜尋樹中的節點 非常類似,但是相比之下簡單很多。首先,我們知道二叉搜尋樹的定義是 左子樹的節點元素值 root的值 右子樹的節點元素值,並且左子樹 右子樹同樣滿足這個條件 遞迴定義 演算法描述 如果root的值 l,說明,root和root left都需...

leetcode 669 修剪二叉搜尋樹

思路 由於二叉搜尋樹的性質 1.當root小於下界值l時,應該採取的是以root的right作為根節點去修剪 相當於扔掉root,以左孩子重新為root 2.當root大於上界r時,應該採取的時以root的left作為根節點去修剪 相當於扔掉root,以右孩子重新為root 3.當root滿足時,不...