题目来源:. - 力扣(LeetCode)
题目思路分析
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。有两种常见的方法来解决这个问题:递归方法和广度优先搜索(BFS)方法。
- 递归(深度优先搜索(DFS))方法:
- 如果根节点为空,则深度为0。
- 否则,递归地计算左子树和右子树的最大深度,然后取两者中的较大值,并加1(加上根节点)。
- 广度优先搜索(BFS)方法:
- 使用一个队列来进行层次遍历。
- 将根节点入队。
- 初始化深度计数器为0。
- 当队列不为空时,进入循环:
- 获取当前层的节点数(即队列的大小)。
- 遍历当前层的所有节点,并将它们的子节点(如果存在)入队。
- 每处理完一层,深度计数器加1。
- 当队列为空时,遍历结束,返回深度计数器的值。
代码:
递归(深度优先搜索(DFS))方法:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr)

最低0.47元/天 解锁文章
904

被折叠的 条评论
为什么被折叠?



