描述
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.
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数
一个二叉树,求其深度,只有一个根时,深度为1
例子
思路
方法1. DFS
递归,对于每个结点,其深度为:
如果为空,返回0
否则返回 1+maxDepth(左子树, 右子树)//1是本结点,所以层数加一
方法2. BFS
把每一层的所有结点依次放入队列(方便将一层所有的结点取出),从队列中取一层的结点,深度加1,对于每一层的每一个结点,如果有子节点,就将其子节点放入队列
答案
- 方法1 python
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if not root:
return 0
return 1+max(self.maxDepth(root