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

力扣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.dtcms.com/a/324245.html

相关文章:

  • XGBoost算法在机器学习中的实现
  • C语言:指针(2)
  • Gin vs Beego vs Echo:三大主流 Go Web 框架深度对比
  • 前端开发中的常见问题与实战解决方案​
  • JS数组排序算法
  • scanpy单细胞转录组python教程(三):单样本数据分析之数据标准化、特征选择、细胞周期计算、回归等
  • 2025.8.10总结
  • 学生成绩管理系统的 SQL 表设计与多表查询实战
  • 部署一个免费开源的博客系统
  • 库的制作和原理
  • 双亲委派机制是什么?
  • 大模型工具集成四层架构:识别、协议、执行与实现
  • reinterpret_cast and static cast
  • Lua的数组、迭代器、table、模块
  • Elasticsearch 搜索模板(Search Templates)把“可配置查询”装进 Mustache
  • 从MySQL到大数据平台:基于Spark的离线分析实战指南
  • 重学React(四):状态管理二
  • Spark执行计划与UI分析
  • 【软考中级网络工程师】知识点之 DCC 深度剖析
  • 系统架构设计师备考之架构设计高级知识
  • 企业高性能web服务器——Nginx
  • App Trace 功能详解 (开发者视角)
  • IDEA 如何导入系统设置
  • 从0到1学LangChain之Agent代理:解锁大模型应用新姿势
  • 【机器学习深度学习】Embedding 模型详解:从基础原理到实际应用场景
  • Xstream反序列化,fastjson,jcakson靶场复现
  • 刑法视野下的虚拟财产属性争议:法律风险与市场潜力解析
  • ThinkPHP8学习篇(二):路由
  • Day39--动态规划--198. 打家劫舍,213. 打家劫舍 II,337. 打家劫舍 III
  • Code Exercising Day 10 of “Code Ideas Record“:StackQueue part02