给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回它的最大深度 3 。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time: 2018/7/27
# @Author: xfLi
# The file...
class TreeNode(object):
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right
def maxDepth(root):
"""
:type root: TreeNode
:rtype: int
"""
if root is None:
return 0
left_deep = maxDepth(root.left) + 1
right_deep = maxDepth(root.right) + 1
if left_deep > right_deep:
return left_deep
else:
return right_deep
if __name__ == '__main__':
root = TreeNode(val=1, left=TreeNode(2, left=TreeNode(3), right=TreeNode(4)),
right=TreeNode(2, left=TreeNode(3), right=TreeNode(4)))
result = maxDepth(root)
print(result)