104. 二叉树的最大深度
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:3
示例 2:
输入:root = [1,null,2] 输出:2
提示:
- 树中节点的数量在
[0, 104]
区间内。 -100 <= Node.val <= 100
算法思路:利用递归遍历二叉树
二叉树的深度包括需要分别比较左子树和右子树,因为左右子树的深度不一致,只要该节点不为0,深度就要加1。
思维导图:
这里注意的是,我们要看的最大深度是:左右子树延伸的最大深度。
代码实现如下:
//求解二叉树的最大深度int maxDepth(struct TreeNode* root) {if(root == NULL){return 0;}int left_Depth = maxDepth(root->left);int right_Depth = maxDepth(root->right);return 1+(left_Depth > right_Depth ? left_Depth :right_Depth); }
好了,本期内容就到这里结束了,这里我们只介绍了使用深度优先算法实现二叉树的最大深度求解对于深度小的二叉树非常适用,后续我们还会介绍如何使用广度搜索方法(BFS)+队列 :使用层序遍历,每遍历一层就把深度加一。实现类似的深度求解,
好了本期的内容就到这里了,谢谢大家的点赞和收藏!