865. 具有所有最深节点的最小子树
class Solution:
def subtreeWithAllDeepest(self, root: TreeNode) -> TreeNode:
res = self.maxDepth(root)
return res.node
def maxDepth(self, root):
if not root:
return Result(None, 0)
left = self.maxDepth(root.left)
right = self.maxDepth(root.right)
if left.depth == right.depth:
return Result(root, left.depth+1)
res = left if left.depth > right.depth else right
res.depth += 1
return res
class Result:
def __init__(self, node, depth):
self.node = node
self.depth = depth
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39