【发布时间】:2021-01-19 15:58:48
【问题描述】:
在 leetcode 上练习我的算法技能时,我遇到了这个问题 https://leetcode.com/problems/diameter-of-binary-tree/
我尝试实现类似于查找树的最大深度的方法。这就是为什么我创建了第二个函数并使用根节点的左右子节点调用它。但它不是 100% 有效,我无法弄清楚。我粘贴了失败的测试用例。
class Solution {
public int diameterOfBinaryTree(TreeNode root) {
if(root == null) return 0;
return check(root.left) + check(root.right);
}
public int check(TreeNode root){
if(root == null) return 0;
return Math.max(check(root.left), check(root.right)) + 1;
}
}
[4,-7,-3,null,null,-9,-3,9,-7,-4,null,6,null,-6,-6,null,null,0,6,5,null,9,null,null,-1,-4,null,null,null,-2]
输出为 7,但需要返回 8。 我将链接粘贴到 leetcode 问题中,以便您可以输入测试用例并可视化树。我实际上不明白为什么它应该等于 8。根据我的理解,答案应该是 7,但显然必须是 8。我在问题的讨论部分发布了它,但没有人回复。
【问题讨论】: