当前位置: 首页 > web >正文

力扣559:N叉树的最大深度

力扣559:N叉树的最大深度

  • 题目
  • 思路
  • 代码

题目

给定一个 N 叉树,找到其最大深度。

最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。

思路

N叉树的最大深度其实就是子树的最大深度再加上1即可,那么子树的最大深度也可以这样表示所以我们可以一直追踪到叶节点的深度再从下往上的返回从而得到最终答案。这也就是dfs即深度优先搜索的思路。
那么我们是否还能想到其他的办法呢?我们知道树是可以被分为一层一层的所以我们只需要定义一个整数然后从根节点一层一层的遍历每遍历一层都让整数+1,最后得到的也就是答案。这种方法叫做bfs即广度优先搜索。
dfs和bfs都是图论中重要的思想和方法,广泛出现在拓扑排序,寻路(走迷宫),搜索引擎,爬虫等,也频繁出现在 leetcode,高频面试题中。

代码

/*
// Definition for a Node.
class Node {
public:int val;vector<Node*> children;Node() {}Node(int _val) {val = _val;}Node(int _val, vector<Node*> _children) {val = _val;children = _children;}
};
*///dfs即深度优先搜索
class Solution {
public:int maxDepth(Node* root) {if(root == nullptr){return 0;}vector<Node*> chs(root->children);int ans = 0;for(auto ch : chs){int childdepth = maxDepth(ch);ans = max(childdepth,ans);}return ans+1;}
};//bfs即广度优先搜索
class Solution {
public:int maxDepth(Node* root) {if(root == nullptr){return 0;}queue<Node*> qu;int res = 0;qu.push(root);while(!qu.empty()){int size = qu.size();while(size > 0){Node* n = qu.front();qu.pop();vector<Node*> chs = n->children;for(auto ch : chs){qu.push(ch);}size--;}res++;}return res;}
};
http://www.xdnf.cn/news/17560.html

相关文章:

  • 【力扣198】打家劫舍
  • Ubuntu 24.04 适配联发科 mt7902 pcie wifi 网卡驱动实践
  • 联邦学习之------VT合谋
  • 计算机网络:路由聚合的注意事项有哪些?
  • 【嵌入式】Linux的常用操作命令(2)
  • 米哈游笔试——求强势顶点的个数
  • [概率 DP]808. 分汤
  • 第4章 程序段的反复执行2 while语句P128练习题(题及答案)
  • pytorch llm 计算flops和参数量
  • Gltf 模型 加载到 Cesium 的坐标轴映射浅谈
  • 深入理解C++构造函数与初始化列表
  • Python训练营打卡Day27-类的定义和方法
  • AudioLLM
  • 专题二_滑动窗口_找到字符串中所有字母异位词
  • 第二十天:数论度量
  • 前端Web在Vue中的知识详解
  • 数据溢出ERROR L107:ADDRESS SPACE OVERFLOW
  • 11. 为什么要用static关键字
  • 【C++】string 的特性和使用
  • Python(13) -- 面向对象
  • 【面试场景题】通过LinkedHashMap来实现LRU与LFU
  • Java+Vue打造的采购招投标一体化管理系统,涵盖招标、投标、开标、评标全流程,功能完备,附完整可二次开发的源码
  • 标准IO实现
  • Effective C++ 条款32:确定你的public继承塑模出 is-a 关系
  • AWT 基本组件深入浅出:Button/Label/TextField/Checkbox/Choice/List 全面实战与性能优化
  • 2025-08-09 李沐深度学习14——经典卷积神经网络 (2)
  • MySQL相关概念和易错知识点(4)(分组查询、连接查询、合并查询、子查询)
  • Mysql笔记-系统变量\用户变量管理
  • 【LLM实战|langchain】langchain基础
  • toRef和toRefs