二叉树的最大深度
【摘要】 CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
欢迎小伙伴们点赞👍、收藏⭐、留言💬
🎈 作者:Linux猿
🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬
一、题目描述
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
二、测试样例
给定如下所示的二叉树:
上图中,二叉树的最大深度为 3。
三、解题思路
本题考查对深度优先搜索的应用,当然,也可以使用栈来模拟深度优先搜索。搜索的过程中比较左右子树的深度,返回较深的一个。
四、代码实现
五、复杂度分析
5.1 时间复杂度
时间复杂度为:O(n),求二叉树的最大深度,需要遍历二叉树的所有节点,故时间复杂度为 O(n)。
5.2 空间复杂度
空间复杂度为:O(m),这里空间复杂度最大为栈的深度,同时也是二叉树的最大深度,空间复杂度最大为 O(n)。
六、总结
本题考查对深度优先搜索的理解,需要掌握递归和非递归两种方式。
CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
欢迎小伙伴们点赞👍、收藏⭐、留言💬
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)