【题目】
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回它的最大深度 3 。
提示:
节点总数 <= 10000
【代码】
【方法1:广度优先】
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if not root:
return 0
depth=0
que=[(root,1)]
while que:
node,dep=que.pop(0)
depth=max(depth,dep)
if node.left:
que.append((node.left,dep+1))
if node.right:
que.append((node.right,dep+1))
return depth
【方法2:深度优先】
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if not root:
return 0
return max(self.maxDepth(root.left)+1,self.maxDepth(root.right)+1)