C++怎么实现二叉树的最大深度
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本文小编为大家详细介绍"C++怎么实现二叉树的最大深度",内容详细,步骤清晰,细节处理妥当,希望这篇"C++怎么实现二叉树的最大深度"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年02月06日C++怎么实现二叉树的最大深度
本文小编为大家详细介绍"C++怎么实现二叉树的最大深度",内容详细,步骤清晰,细节处理妥当,希望这篇"C++怎么实现二叉树的最大深度"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
二叉树的最大深度
Example:
Given binary tree [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
return its depth = 3.
求二叉树的最大深度问题用到深度优先搜索 Depth First Search,递归的完美应用,跟求二叉树的最小深度问题原理相同,参见代码如下:
C++ 解法一:
class Solution {public: int maxDepth(TreeNode* root) { if (!root) return 0; return 1 + max(maxDepth(root->left), maxDepth(root->right)); }};
Java 解法一:
public class Solution { public int maxDepth(TreeNode root) { return root == null ? 0 : (1 + Math.max(maxDepth(root.left), maxDepth(root.right))); }}
我们也可以使用层序遍历二叉树,然后计数总层数,即为二叉树的最大深度,注意 while 循环中的 for 循环的写法有个 trick,一定要将 q.size() 放在初始化里,而不能放在判断停止的条件中,因为q的大小是随时变化的,所以放停止条件中会出错,参见代码如下:
C++ 解法二:
class Solution {public: int maxDepth(TreeNode* root) { if (!root) return 0; int res = 0; queueq{{root}}; while (!q.empty()) { ++res; for (int i = q.size(); i > 0; --i) { TreeNode *t = q.front(); q.pop(); if (t->left) q.push(t->left); if (t->right) q.push(t->right); } } return res; }};
Java 解法二:
public class Solution { public int maxDepth(TreeNode root) { if (root == null) return 0; int res = 0; Queueq = new LinkedList<>(); q.offer(root); while (!q.isEmpty()) { ++res; for (int i = q.size(); i > 0; --i) { TreeNode t = q.poll(); if (t.left != null) q.offer(t.left); if (t.right != null) q.offer(t.right); } } return res; }}
读到这里,这篇"C++怎么实现二叉树的最大深度"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
深度
最大
C++
解法
文章
代码
内容
条件
问题
循环
妥当
最小
相同
写法
原理
大小
思路
新知
更多
步骤
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sdos数据库
四种国产数据库
互联网科技服务新巨头
杭州佳哇软件开发
缓存 服务器
cf广东区服务器在哪里
网络安全信息化和国家安全
北京好一点的软件开发公司都在哪
兰州陇助微互联网科技有限公司
海淀服务器回收
计算机软件开发创业规划
天津软件开发加班
网络安全小组成立时间
安防监控平台管理服务器
北辰区信息网络技术售后保障
网络安全责任制实施办法大学生
电力企业网络安全现状
CCLA数据库什么意思
魔兽世界单机修改装备数据库
数据库技术与应用罗斯文
网易服务器到期自动删存档吗
网络安全授权有什么好处
惠普580服务器价格
皮肤管理中心服务器
数据库产生的三个阶段
数据库D域
服务器初始化端口
厦门直开尼网络技术有限公司
松原织密网络安全
网络安全检测报告怎么写