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

P4913 【深基16.例3】二叉树深度 dfs-二叉树的遍历

P4913 【深基16.例3】二叉树深度
来源:

文章目录

    • 题目
    • 思路
    • 参考代码

题目

思路

从根节点开始往下搜索到叶子结点每一种可能的路径,然后找到长度最长的路径长度即为深度-即遍历这棵树

  1. 如何储存该图,每个结点给出孩子节点,因此可以直接结构体储存孩子节点,结构体的下标就为该节点的序号
  2. 如何从根节点开始搜索,直接从根节点开始玩往下搜索其孩子结点(先递归遍历该节点的左节点,再递归遍历该节点的右节点。),并及时记录本次搜索所在的路径长度(深度)- 搜完求最大值即为结果
  3. 递归搜索-dfs退出条件:搜到叶子结点位置return

因为每个节点遍历一次,所以总时间复杂度为O(n) 运行时间安全

参考代码

#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+5;intans=1;structnode{intl;intr;}tree[N];voiddfs(intx,intk);intmain(){intn;cin>>n;for(inti=1;i<=n;i++){cin>>tree[i].l>>tree[i].r;}dfs(1,1);//深搜遍历结点,初始深度为1cout<<ans;return0;}voiddfs(intx,intk){if(x==0){//节点搜索到叶节点则停止return;}ans=max(ans,k);dfs(tree[x].l,k+1);//搜索左子树dfs(tree[x].r,k+1);//搜索右子树}
http://www.jsqmd.com/news/346936/

相关文章:

  • 未来5年IT人才需求前瞻?哪些方向爆发?哪些岗位会萎缩?程序员的职业规划重要吗?
  • 基于SpringBoot+Vue的智慧社区服务管理系统设计与实现
  • AI 这么火,.NET 开发者到底值不值得学?怎么学?
  • Trilium Demo
  • AI应用架构师经验谈:半导体研究智能体系统容错设计
  • 每日一题:中间件是如何工作的?
  • SpringDoc和Swagger运用
  • 多语言支持:构建国际化的AI Agent
  • 2-5
  • 如何兼顾极地考察与编码?科考开发者的时间术
  • 7个变态又好用的AI神器
  • ⚖️ OCSL v1.0 | 开放文化主权许可证 (Open Cultural Sovereignty License)
  • 从月薪6k到NASA外包:我的文昌航天城软件测试逆袭路
  • 2026太空安全危机:测试认证缺失的连锁反应
  • 脑机接口伦理师入门:哲学背景转型指南
  • Linux 下“彻底删除文件”这件事,到底该怎么做?
  • 元宇宙地产崩盘背后的技术真相:被忽视的测试致命伤
  • 芯片产业链平台界面设计及插画设计
  • pod的内部结构
  • 你能谈一下JVM的主要组成部分吗?
  • 力扣hot100 - 101、对称二叉树
  • CF1061F Lost Root 题解 / 随机化 交互
  • spacedesk网络设置副屏 windows 不需要himi
  • 双桅杆起重机非线性建模与控制-EXP-整形控制-起重机
  • 力扣hot100 - 108、将有序数组转换为二叉搜索树
  • 【组合意义】ARC212C ABS Ball
  • iTerm2 的清屏命令
  • 2026国内最新最新电解电容企业top5推荐!广东广州等地优质电子配套服务商权威榜单发布,资质服务双优助力产业高效发展 - 品牌推荐2026
  • 基于深度学习的肺音分类算法研究
  • 道路场景行人检测及逆行行为识别研究-大数据深度学习算法毕设毕业设计项目PyQT