我正在研究 Leet Code 问题543。二叉树的直径:
给定
root二叉树,返回树的直径长度。二叉树的直径是树中任意两个节点之间最长路径的长度。该路径可能会也可能不会经过
root.两个节点之间的路径长度由它们之间的边数表示。
实施例1
输入:
root = [1,2,3,4,5]
输出:3
解释: 是路径或3的长度。[4,2,1,3][5,2,1,3]
这是我的尝试:
def diameterOfBinaryTree(self, root):
return self.getHeight(root.left) + self.getHeight(root.right)
def getHeight(self, root):
if not root:
return 0
return max(self.getHeight(root.left), self.getHeight(root.right)) + 1
Run Code Online (Sandbox Code Playgroud)
我通过了100/104 个测试用例。
我出错的测试用例的输入是8 [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],预期结果是8。然而,由于我的解决方案的逻辑,我得到了7,并且不知道我怎么会错。