337. House Robber III

这次贼要抢二叉树了。相邻的节点不能被抢
还是利用之前的思想。
是否要抢当前的节点由他的子节点和子子节点决定。

var rob = function(root) {
    if (!root)
        return 0;
    var val = 0;
    var left = rob(root.left);
    var right = rob(root.right);
    if (root.left) {
        val += root.left.left ? root.left.left.val : 0;
        val += root.left.right ? root.left.right.val : 0;
    }
    if (root.right) {
        val += root.right.left ? root.right.left.val : 0;
        val += root.right.right ? root.right.right.val : 0;
    }
    root.val = Math.max(val + root.val, left + right);
    return root.val;
};

你可能感兴趣的:(337. House Robber III)