自从伊甸园里,夏娃被骗吃苹果之后,到了人间,时间越久,越是怀念那时的美
好,尤其是后来听到炫曲《小苹果》之后,她找到了人间孕育最美好的一棵树。
这棵树上如此优雅: 远远望去,整颗树上苹果的大小,竟然是按照一种数学之 美"二叉树”排列的, 除了树顶的那个苹果,其他苹果有且只有-个上层苹果与之相连,
但是因为之前的心理阴影,夏娃决定不会同时吃掉两个相连的苹果,但是又想让
自己吃到的苹果大小的总和达到最大
夏娃应该怎么选择才最好呢
例子:3,2,3,#,3,#,1(层序构建)
输出:7
说明 3+3+1=7
只有60%的通过率,why,是我漏了什么题目条件吗
public int eating(TreeNode tree) {
// write code here
return Math.max(eat(tree, true),eat(tree, false));
}
private int eat(TreeNode tree, boolean flag) {//flag标记这一层吃还是不吃
// write code here
if (tree == null) {
return 0;
}
int left = eat(tree.left, !flag);
int right = eat(tree.right, !flag);
if (!flag) {//如果不吃直接返回子树结果和
return left + right;
}
return tree.val + left + right;
}