二叉树1

173 阅读1分钟

94. 二叉树的中序遍历

var inorderTraversal = function(root) {
    let res = []
    const order = root => {
        if (root == null) return
        root.left && order(root.left)
        res.push(root.val)
        root.right && order(root.right)
    }
    order(root)
    return res
};

96. 不同的二叉搜索树

const numTrees =(n) => {
    let dp = new Array(n+1).fill(0);
    dp[0] = 1;
    dp[1] = 1;

    for(let i = 2; i <= n; i++) {
        for(let j = 1; j <= i; j++) {
            dp[i] += dp[j-1] * dp[i-j];
        }
    }

    return dp[n];
};

199. 二叉树的右视图

var rightSideView = function(root) {
    let res=[],queue=[];
    queue.push(root);
    while(queue.length && root !== null){
        let len = queue.length;
        while(len--){
            let node=queue.shift();
            if(!len){
                res.push(node.val);
            }
            node.left&&queue.push(node.left);
            node.right&&queue.push(node.right);
        }
    }
    return res;
};