本文共 1250 字,大约阅读时间需要 4 分钟。
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its depth = 3.
返回树的深度,可以用DFS或者BFS算法,都很简单.
DFS:用maxdepth记录最大深度
class Solution: def maxDepth(self, root: TreeNode) -> int: if root is None: return 0 stack=[(root,1)] maxdepth=1 while stack: node,depth = stack.pop() if depth>maxdepth: maxdepth=depth if node.left: stack.append((node.left, depth+1)) if node.right: stack.append((node.right, depth+1)) return maxdepth
BFS:
class Solution(object): def maxDepth(self, root): """ :type root: TreeNode :rtype: int """ depth = 0 level = [root] if root else [] while level: depth += 1 queue = [] for el in level: if el.left: queue.append(el.left) if el.right: queue.append(el.right) level = queue return depth
转载地址:http://xdrbb.baihongyu.com/