我正在做this Leetcode Problem,但我不理解这种二叉树的测试用例表示形式。
[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]
索引为“ i”的普通二叉树节点的子级为“ 2i + 1”,“ 2i + 2”。
但是,索引3和4('null')的节点具有具有值(分别位于索引7 / 8、9 / 10)的子节点。
我不太确定这是如何工作的,以及如何根据此测试用例来解决我的解决方案。
此测试用例返回的直径为'7',而不是预期的直径'8'。
到目前为止,这是我的解决方案(通过了102/106个测试用例):
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def diameterOfBinaryTree(self, root: TreeNode) -> int:
if (root):
return (self.findLongestPath(root.right) + self.findLongestPath(root.left))
else:
return 0
def findLongestPath(self, node: TreeNode) -> int:
if (node):
return (1 + max(self.findLongestPath(node.left), self.findLongestPath(node.right)))
else:
return 0