337. House Robber III
题目描述和难度
- 题目描述:
小偷又发现一个新的可行窃的地点。 这个地区只有一个入口,称为“根”。 除了根部之外,每栋房子有且只有一个父房子。 一番侦察之后,聪明的小偷意识到“这个地方的所有房屋形成了一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。
在不触动警报的情况下,计算小偷一晚能盗取的最高金额。
示例 1:
3 / \ 2 3 \ \ 3 1
能盗取的最高金额 = 3 + 3 + 1 = 7.
示例 2:
3 / \ 4 5 / \ \ 1 3 1
能盗取的最高金额 = 4 + 5 = 9.
致谢:
特别感谢 @dietpepsi 添加此题并创建所有测试用例。
- 题目难度:中等。
- 英文网址:337. House Robber III 。
- 中文网址:337. 打家劫舍 III 。
思路分析
求解关键:
参考解答
参考解答1
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public class Solution {
public int rob(TreeNode root) {
if (root == null) {
return 0;
}
int val = root.val;
if(root.left!=null){
val+= rob(root.left.left) + rob(root.left.right);
}
if(root.right!=null){
val+= rob(root.right.left) + rob(root.right.right);
}
return Math.max(val,rob(root.left) + rob(root.right));
}
}
本篇文章的地址为 https://liweiwei1419.github.io/leetcode-solution/leetcode-0337-house-robber-iii ,如果我的题解有错误,或者您有更好的解法,欢迎您告诉我 liweiwei1419@gmail.com 。