1. 程式人生 > >[LeetCode javaScript] 669. 修剪二叉搜尋樹

[LeetCode javaScript] 669. 修剪二叉搜尋樹

給定一個二叉搜尋樹,同時給定最小邊界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.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} L
 * @param {number} R
 * @return {TreeNode}
 */
var trimBST = function(root, L, R) {
    if(root==null){
        return null;
    }
    //根節點值小於左邊界
    if(root.val<L){
        return trimBST(root.right,L,R);
    }
    //根節點值大於右邊界
    if(root.val>R){
        return trimBST(root.left,L,R);
    }
    root.left=trimBST(root.left,L,R);
    root.right=trimBST(root.right,L,R);
    return root;
};