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

news2024/9/20 16:46:40

在这里插入图片描述

本篇博客会讲解力扣“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.coloradmin.cn/o/821950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

踩坑(5)整合kafka 报错 java.net.UnknownHostException: 不知道这样的主机

java.net.UnknownHostException: 不知道这样的主机。 (5c0c3c629db9)at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:933) ~[na:na]at java.ba…

windows如何上架ios应用到app store

Application Uploader iOS App上架工具是一款非常好用的针对iOS苹果应用程序软件开发的实用编程工具,它的主要作用是帮助用户进行快速的程序应用设计和程序应用调试,节省用户进行软件开发耗费的不必要时间! ​ 编辑切换为居中 添加图片注释&…

【宝藏系列】Curl 用法指南大全

【宝藏系列】Curl 用法指南大全 简介 curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这…

基于STM32CubeMX和keil采用通用定时器中断实现固定PWM可调PWM波输出分别实现LED闪烁与呼吸灯

文章目录 前言1. PWM波阐述2. 通用定时器2.1 为什么用TIM142.2 TIM14功能介绍2.3 一些配置参数解释2.4 PWM实现流程&中断2.4.1 非中断PWM输出(LED闪烁)2.4.2 中断PWM输出(LED呼吸灯) 3. STM32CubeMX配置3.1 GPIO配置3.2 时钟配置3.3 定时器相关参数配置3.4 Debug配置3.5 中…

JDK17和JDK8完美卸载方法及新版JDK安装教程

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Altova MissionKit 2023Crack

Altova MissionKit 2023Crack MissionKit是一套面向信息架构师和应用程序开发人员的企业级XML、JSON、SQL和UML工具的软件开发套件。MissionKit包括Altova XMLSpy、MapForce、StyleVision和其他市场领先的产品,用于构建当今的真实世界软件解决方案。 使用MissionKit…

carla与g29联合调试(二)

前言: 对于力反馈的源码解析。 一、工作空间分析 工作空间如下图所示: config文件中是对相关参数的设定; launch文件是将yaml文件和执行文件融合启动; msg文件是自定义消息类型; script文件是python版本的ros执行…

子网划分详解+实例精析

IP编址系列文章(下) 前言 一,为什么要划分子网 举例: 二,划分子网数量公式 举例1: 举例2: 小结: 总结 前言 随着华为公司的不断发展,数据通信这门技术也越来越重要&#xff…

北大核心中文周刊复现-基于逻辑回归的金融风投评分卡模型实现

最近有些学员有论文需求,让我提供一下逻辑回归,金融风控,评分卡相关参考论文,以供参考。我找了一篇描述评分卡模型原理的论文,题目是《基于逻辑回归的金融风投评分卡模型实现》,第一作者边玉宁。这篇论文发…

vue3搭建(vite+create-vue)

目录 前提条件 输入命令 对于Add an End-to-End Testing Solution nightwatch和Cypress 和 Playwright 运行 前提条件 熟悉命令行已安装 16.0 或更高版本的 Node.js (node -v查看版本) 输入命令 npm init vuelatest 这一指令将会安装并执行 create-…

整数规划——第一章 引言

整数规划——第一章 引言 整数规划是带整数变量的最优化问题,即最大化或最小化一个全部或部分变量为整数的多元函数受约束于一组等式和不等式条件的最优化问题。许多经济、管理、交通、通信和工程中的最优化问题都可以用整数规划来建模。 考虑一个电视机工厂的生产…

软件测试面试总结——http协议相关面试题

前言 在PC浏览器的地址栏输入一串URL,然后按Enter键这个页面渲染出来,这个过程中都发生了什么事?这个是很多面试官喜欢问的一个问题 如果测试只是停留在表面上点点点,不知道背后的逻辑,是无法发现隐藏的bug,只能找一…

【JAVASE】类与对象

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 类与对象 1. 面向对象1.1 什么是面向对象…

Spark-对RDD的理解

RDD是分布式弹性数据集。 RDD有五大特性: 一组分区,每个RDD都会被分为多个分区,这些分区运行在集群的不同节点上,分区数决定并行计算的数量。一个计算每个分区的函数,就是计算逻辑。RDD之间的依赖关系,就…

PostgreSQL Patroni_exporter 监控 patroni高可用工具

Patroni是Cybertec公司基于python语言开发的,可用于使用流复制来创建,管理,维护和监视高可用性PostgreSQL集群设置的工具。 目前,PatroniEtcd 是最为推荐的PostgreSQL数据库高可用方案之一。 PostgreSQL有postgres_exporter监控采…

微信小程序使用 canvas 2d 实现签字板组件

本文是在微信小程序中使用 canvas 2d 来实现签字板功能&#xff1b; 效果图&#xff1a; 代码&#xff1a; 1、wxml <view><canvas id"canvas"type"2d"bindtouchstart"start"bindtouchmove"move"bindtouchend"end&qu…

iphone备份用什么软件?好用的苹果数据备份工具推荐!

众所周知&#xff0c;如果要将iPhone的数据跟电脑进行传输备份的话&#xff0c;我们需要用到iTunes这个pc工具。但是对于iTunes&#xff0c;不少人都反映这个软件比较难用&#xff0c;用不习惯。于是&#xff0c;顺应时代命运的iPhone备份同步工具就出现了。那iphone备份用什么…

VR元宇宙模拟法庭开审体验系统增加学生的参与度和学习效果

元宇宙技术是VR虚拟现实和AR增强现实技术的进一步发展和迭代&#xff0c;它在法治教育中的应用可以突破传统教育的许多限制&#xff0c;让体验者获得更加互动、沉浸和个性化的学习体验。 虚拟法庭&#xff1a; VR元宇宙开发可以模拟虚拟法庭环境&#xff0c;让学生在其中扮演不…

设计师必学!Figma怎么在线保存各种格式图片的操作方法

如今的市场上有许多协作 UI 设计软件可供选择&#xff0c;然而大部分都是国外版本的&#xff0c;对于国内设计师而言&#xff0c;由于语言上的障碍&#xff0c;使用这些软件可能会存在一定的困难。尤其是 Figma 虽然发展多年&#xff0c;但始终没有中文版&#xff0c;让众多设计…

手把手一起使用WPF开源UI框架MahApps.Metro

1、创建新项目 使用Visual Studio 2022创建新项目&#xff0c;如图点击创建新项目&#xff1a; 选择WPF应用(.NET Framework)&#xff1a; 配置新项目&#xff0c;如图&#xff1a; 随便写几个WPF默认样式控件&#xff1a; 2、安装 MahApps.Metro 点击工具->NuGet包管理器…