public int rob(TreeNode root) {
int[] res = dfs(root);
return Math.max(res[0], res[1]);//根结点的不偷与偷
}
private int[] dfs(TreeNode node){
if(node==null) return new int[]{0,0};
int[] left=dfs(node.left);
int[] right=dfs(node.right);
int[] dp=new int[2];
dp[0]=Math.max(left[0],left[1])+Math.max(right[0],right[1]);
dp[1]=left[0]+right[0]+node.val;
return dp;
}
力扣337 打家劫舍III
最新推荐文章于 2024-10-14 17:32:24 发布