赞
踩
题目描述
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:3
示例 2:
输入:root = [1,null,2] 输出:2
思路
1)递归地从上向下走
2)遍历到底部(叶子结点)时,当前层的长度为1
3)再逐渐往回返,每个当前层的长度为左右子树长度的较大值+1
4)如果当前没节点,返回0
- # Definition for a binary tree node.
- class TreeNode(object):
- def __init__(self, val=0, left=None, right=None):
- self.val = val
- self.left = left
- self.right = right
- class Solution(object):
- def maxDepth(self, root):
- """
- :type root: TreeNode
- :rtype: int
- """
- if not root:
- return 0
- ldepth = self.maxDepth(root.left)
- rdepth = self.maxDepth(root.right)
- return max(ldepth,rdepth)+1
-
- if __name__=='__main__':
- s=Solution()
- #构建二叉树
- root=TreeNode(1)
- node1=TreeNode(2)
- node2=TreeNode(3)
- node3=TreeNode(4)
- node4=TreeNode(5)
- node5=TreeNode(6)
- node6=TreeNode(7)
- root.left=node1
- root.right=node2
- node1.left=node3
- node1.right=node4
- node2.right=node5
- node4.left=node6
- node3.left=node3.right=node6.left=node6.right=node4.right=node2.left=node5.left=node5.right=None
- #调用函数
- print(s.maxDepth(root))

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。