【发布时间】:2021-11-28 20:31:07
【问题描述】:
我正在解决 Leet Code 问题543. Diameter of Binary Tree:
给定二叉树的
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
我通过了 100/104 个测试用例。
我弄错的测试用例输入了[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 并且不知道我怎么会错。
【问题讨论】:
-
如果您将数组表示为一棵树对我们来说会更容易
-
您的代码假定(整个树的)根是直径的一部分。可能不是。
标签: python algorithm data-structures graph binary-tree