商城网站的建设方案,网站建设模型,网络推广方法怎么样,企业做官网有哪些好处题目描述
给定一个二叉树 root #xff0c;返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1#xff1a; 输入#xff1a;root [3,9,20,null,null,15,7]
输出#xff1a;3示例 2#xff1a;
输入#xff1a;root [1,n…题目描述
给定一个二叉树 root 返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1 输入root [3,9,20,null,null,15,7]
输出3示例 2
输入root [1,null,2]
输出2
思路
剑指offer二叉树的深度-CSDN博客
1递归地从上向下走
2遍历到底部叶子结点时当前层的长度为1
3再逐渐往回返每个当前层的长度为左右子树长度的较大值1
4如果当前没节点返回0
# Definition for a binary tree node.
class TreeNode(object):def __init__(self, val0, leftNone, rightNone):self.val valself.left leftself.right right
class Solution(object):def maxDepth(self, root)::type root: TreeNode:rtype: intif not root:return 0ldepth self.maxDepth(root.left)rdepth self.maxDepth(root.right)return max(ldepth,rdepth)1if __name____main__:sSolution()#构建二叉树rootTreeNode(1)node1TreeNode(2)node2TreeNode(3)node3TreeNode(4)node4TreeNode(5)node5TreeNode(6)node6TreeNode(7)root.leftnode1root.rightnode2node1.leftnode3node1.rightnode4node2.rightnode5node4.leftnode6node3.leftnode3.rightnode6.leftnode6.rightnode4.rightnode2.leftnode5.leftnode5.rightNone#调用函数print(s.maxDepth(root))