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

二叉树遍历

1.遍历:前序、中序、后续、层序(前三种是深度遍历,后一种是广度遍历)

前序:根、左子树、右子树

中序:左子树、根、右子树

后序:左子树、右子树、根

(根访问的位置不同)

层序:一层一层 A B C D E NULL NULL NULL NULL NULL NULL

注意:如何判断是否为完全二叉树——看节点和空是否分离

2.实现——需要用到递归的方法

前序的遍历、节点数、叶子数实现

//遍历 vector<int> preorderTraversal(TreeNode* root) { vector<int> arr; if(!root) { arr.push_back(0); //把左右子节点的空也给出来了 return arr; } arr.push_back(root->val); vector<int> left=preorderTraversal(root->left); vector<int> right=preorderTraversal(root->right); arr.insert(arr.end(),left.begin(),left.end()); arr.insert(arr.end(),right.begin(),right.end()); return arr; } //求节点数 int treesize(TreeNode* root) { if(root==nullptr) return 0; else return 1+treesize(root->left)+treesize(root->right); } //求叶子数 int treeleafsize(TreeNode* root) { if(root==nullptr) return 0; if(root->left==nullptr&&root->right==nullptr) return 1; return treeleafsize(root->left)+treeleafsize(root->right); }

中序

class Solution { public: void inorder(TreeNode* root,vector<int> & res) { if(root==nullptr) return; inorder(root->left,res); res.push_back(root->val); inorder(root->right,res); } vector<int> inorderTraversal(TreeNode* root) { vector<int> res; inorder(root,res); return res; } };

后序:

class Solution { public: void postorder(TreeNode* root,vector<int> & res) { if(root==nullptr) return; postorder(root->left,res); postorder(root->right,res); res.push_back(root->val); } vector<int> postorderTraversal(TreeNode* root) { vector<int> res; postorder(root,res); return res; } };
http://www.jsqmd.com/news/712553/

相关文章:

  • 2025-2026年璀璨时代楼盘电话查询:看房前请核实房源信息与合同条款 - 品牌推荐
  • 2025-2026年双叶家具电话查询。核实品牌资质与选购注意事项 - 品牌推荐
  • VS Code MCP企业集成方案(金融/政企/制造三类场景深度拆解)
  • 哪款15万左右的城市SUV好?2026年4月推荐评测口碑对比TOP5产品领先长途驾驶舒适性差 - 品牌推荐
  • 3步快速汉化Axure RP:免费获取完整中文界面终极指南
  • 公司内网想监控?分享六个内网监控方法,快码住学起来
  • GPT-5.5生物漏洞赏金计划强化高级AI安全防护
  • 如何选择15万左右的城市SUV?2026年4月推荐评测口碑对比知名长途出行空间不足 - 品牌推荐
  • OpenClaw 小龙虾 2.6.6 Win10 版本部署与实操
  • 黑客利用Telegram做“战报系统”,900余家企业遭React2Shell漏洞批量洗劫
  • Pixel Couplet Gen快速上手:Colab Notebook零配置体验像素春联生成
  • 【紧急预警】:某政务系统因未适配国产编译器-fPIC默认行为,导致.so加载失败——C语言开发者必须在Q3前掌握的5个ABI敏感配置项
  • 开源大模型零售落地:Ostrakon-VL终端MIT协议+Streamlit轻量部署教程
  • 2025-2026年璀璨时代楼盘电话查询:实地看房前请核实配套进展与合同条款 - 品牌推荐
  • 固件升级如何按地区分批推送?IP地址查询定位决定升级策略
  • 2026年4月15万左右的城市SUV推荐:五款口碑产品评测对比领先通勤拥堵油耗焦虑 - 品牌推荐
  • 交错PFC技术与NCP1631控制器优化方案
  • 仅限前500名开发者获取:VS Code Dev Containers插件极速安装工具包(含自动检测+一键修复+日志诊断)
  • 你怎么还在手敲代码,是不会用AI吗
  • 实战复盘:我是如何用Passware Kit Forensic离线破解Windows注册表密码的(附盘古石杯NAS取证案例)
  • 2025-2026年朝棠揽阅电话查询:预约前请核实项目信息与合同条款 - 品牌推荐
  • 轻量级多模态模型Qwen3.5-2B效果展示:YOLOv8检测结果的智能描述生成
  • 关于Claudecode出现API 400ERROR问题的解决办法
  • sonome全网最简单的AI音乐平台
  • 如何选15万左右的城市SUV?2026年4月推荐评测口碑对比知名长途自驾空间局促 - 品牌推荐
  • 【XR技术介绍】AI快速扫描3D场景技术全景解析:水平、路径与技术选型
  • 车载TSN协议栈开发实战(C语言零拷贝+硬件时间戳加速版):3个被OEM屏蔽的真实项目故障复现与修复
  • 终极Evernote备份指南:如何使用evernote-backup保护你的数字记忆 [特殊字符]️
  • 程序员高效摸鱼式学习法,工作之余提升自己,不加班也能进步
  • 2026年4月沈阳稽查应对公司联系电话:选择财税服务前需核实资质与风险提示 - 品牌推荐