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

探秘二叉树后序遍历:从叶子到根的深度之旅

在这里插入图片描述

本篇博客会讲解力扣“145. 二叉树的后序遍历”的解题思路,这是题目链接。

在这里插入图片描述
本题的思路是:

  1. 先创建一个数组,用来存储二叉树后序遍历的结果。数组的大小跟树的结点个数有关。树的结点个数可以使用递归实现,即总个数=左子树结点个数+右子树结点个数+1。
  2. 接着实现后序遍历。先遍历左子树,再遍历右子树,最后遍历根节点,把遍历的结果存储在返回数组里。
int TreeSize(struct TreeNode* root)
{return root == NULL ? 0 :TreeSize(root->left) + TreeSize(root->right) + 1;
}void _postorderTraversal(struct TreeNode* root, int* ret, int* pi)
{if (root == NULL){return;}// 左子树 右子树 根_postorderTraversal(root->left, ret, pi);_postorderTraversal(root->right, ret, pi);ret[(*pi)++] = root->val;
}int* postorderTraversal(struct TreeNode* root, int* returnSize){*returnSize = TreeSize(root);int* ret = (int*)malloc(sizeof(int) * *returnSize);int i = 0;_postorderTraversal(root, ret, &i);return ret;
}

在这里插入图片描述

总结

后序遍历:先遍历左子树,再遍历右子树,最后遍历根结点。

感谢大家的阅读!

http://www.lryc.cn/news/148982.html

相关文章:

  • 2023全国大学生数学建模A题思路+模型+代码+论文(比赛开始后持续更新)
  • 从输入URL到页面展示过程:深入解析网络请求与渲染
  • Go 使用 Gorm 将操作信息集成到链路跟踪 Jaeger,进行增删改查使用举例,并做可视化UI界面展示(附源码)
  • 【JavaScript精通之道】掌握数据遍历:解锁现代化遍历方法,提升开发效率!
  • opencv android sdk 使用中的问题
  • 《向量数据库指南》——向量数据库与人工智能是一对“双生子
  • WebSocket协议
  • Spring 事务是什么 ?事务的传播机制?
  • 黑马最新MybatisPlus教程!帮你实现快速开发
  • 秒杀场景下用乐观锁解决超卖问题
  • 技术实践|Hive数据迁移干货分享
  • The remote endpoint was in state [TEXT_FULL_WRITING]
  • 微信小程序ios下,border显示不全兼容问题解决
  • 《Effective C++中文版,第三版》读书笔记6
  • 【Docker 】Docker 客户端,容器使用,启动容器,启动已停止运行的容器,停止一个容器,进入容器
  • CTFshow 菜狗杯 web方向 全
  • 深入理解sql:进阶版
  • day31 | 455.分发饼干、376. 摆动序列、53. 最大子序和
  • C# textBox 右键菜单 contextMenuStrip
  • TCP拥塞控制详解 | 7. 超越TCP
  • stm32之26.spi外设
  • C++信息学奥赛1177:奇数单增序列
  • Java的数组是啥?
  • 我的私人笔记(安装hadoop)
  • 【板栗糖GIS】——360浏览器的下载图标隐藏在内部不方便,怎么修改
  • SpringMVC之文件上传和下载
  • 简单了解OSI网络模型
  • 服务网格实施周期缩短 50%,丽迅物流基于阿里云 ACK 和 ASM 的云原生应用管理实践
  • bpmnjs Properties-panel拓展(属性设置篇)
  • Debian系统上通过NFS挂载远程服务器硬盘