38 lines
617 B
Python
38 lines
617 B
Python
|
|
|
||
|
|
class TreeNode:
|
||
|
|
|
||
|
|
def __init__(self, val):
|
||
|
|
|
||
|
|
self.val = val
|
||
|
|
self.left = None
|
||
|
|
self.right = None
|
||
|
|
|
||
|
|
|
||
|
|
def deepestNode(root, level, maxLevel):
|
||
|
|
|
||
|
|
if not root:
|
||
|
|
return maxLevel
|
||
|
|
|
||
|
|
if level > maxLevel:
|
||
|
|
maxLevel = level
|
||
|
|
|
||
|
|
|
||
|
|
leftRes = deepestNode(root.left, level + 1, maxLevel)
|
||
|
|
rightRes = deepestNode(root.right, level + 1, maxLevel)
|
||
|
|
|
||
|
|
|
||
|
|
if leftRes and rightRes:
|
||
|
|
return max(leftRes, rightRes)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
root = TreeNode(3)
|
||
|
|
root.left = TreeNode(9)
|
||
|
|
root.right = TreeNode(20)
|
||
|
|
root.right.left = TreeNode(15)
|
||
|
|
root.right.right = TreeNode(7)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
print deepestNode(root, 1, 0)
|