Leetcode二叉树表示

时间:2020-06-09 22:20:17

标签: python

我正在做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

0 个答案:

没有答案