后序遍历的线索化二叉树

news2024/10/4 21:38:49

对于后序遍历,需要明确,往往叶子结点,只能指向右子树(如果右子树存在的情况),或者指向该结点(因为这才是后序遍历),同样在进行退出到前一次递归的时候,我们要将pre指向当前的结点,这样才能够让退回上一个循环的指针,在满足条件的情况下,将结点指向它当前递归返回的它的下一个递归的pre直接结点前驱(我感觉这样能够好理解一点)

后序遍历的线索化二叉树

#pragma region 后序线索化
Node* pre;
void PostOrder(Node* root)
{
	if (root == NULL)
	{
		return;
	}
	Node* tmpnode = NULL;
	tmpnode = root;
	PostOrder(tmpnode->lchild);
	PostOrder(tmpnode->rchild);
	if (tmpnode->lchild == NULL && tmpnode != NULL)
	{
		tmpnode->ltag = 1;
		tmpnode->lchild = pre;
	}
	if (pre->rchild == NULL&& pre!=NULL)
	{
		pre->rchild = tmpnode;
		pre->rtag = 1;
	}
	pre = root;
	cout << tmpnode->data << endl;
}
#pragma endregion

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1420353.html

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

相关文章

基于Redis的高可用分布式锁——RedLock

目录 RedLock简介 RedLock工作流程 获取锁 释放锁 RedLock简介 Redis作者提出来的高可用分布式锁由多个完全独立的Redis节点组成&#xff0c;注意是完全独立&#xff0c;而不是主从关系或者集群关系&#xff0c;并且一般是要求分开机器部署的利用分布式高可以系统中大多数存…

再学vue3的优势

vue3 对 vue2 有什么优势 性能更好&#xff08;编译优化、使用proxy等&#xff09;体积更小更好的TS支持更好的代码组织更好的逻辑抽离更多新功能 vue3 和 vue2 的生命周期有什么区别 Options API生命周期 beforeDestroy改为beforeUnmountdestroyed改为umounted其他沿用vue…

网络安全01--负载均衡

目录 一、环境准备 1.1三台虚拟机 二、开始搭建负载均衡&#xff1a; 2.1准备一下源 2.2正式安装 2.3Nginx安装情况 三、负载均衡--轮询&#xff08;round robin&#xff09; 3.1在 http 部分添加如下负载均衡配置&#xff1a; 3.2简单解释一下server端&#xff1a; …

vxe-table表格合并行和虚拟滚动冲突

项目一直用的vxe-table 2.0版本&#xff0c;支持表格的虚拟滚动&#xff0c;最近要做表格合并行功能&#xff0c;虚拟滚动便失效了&#xff0c;强行虚拟滚动&#xff0c;合并行会有错行现象。 vxe-table2.0给出的解释是&#xff1a;合并行不能和虚拟滚动一起使用。 目前找到两种…

代码之外的艺术:程序员的写作利器

在这个信息爆炸的时代&#xff0c;知识的管理和团队协作成了重要的技能。对于个人和企业来说&#xff0c;高效的文档和笔记服务平台是保持竞争力的关键工具。今天&#xff0c;让我们深入对比一下当前市场上流行的几款服务&#xff1a;石墨文档、腾讯文档、语雀、有道云笔记、No…

Linux:理解信号量以及内核中的三种通信方式

文章目录 共享内存的通信速度消息队列msggetmsgsndmsgrcvmsgctl 信号量semgetsemctl 内核看待ipc资源单独设计的模块ipc资源的维护 理解信号量总结 本篇主要是基于共享内存&#xff0c;延伸出对于消息队列和信号量&#xff0c;再从内核的角度去看这三个模块实现进程间通信 共享…

剖析Elasticsearch面试题:分词、倒排索引、文本相似度TF-IDF,揭秘分段存储与段合并,解密写索引技巧,应对深翻页问题的实用解决方案!

1、谈谈分词与倒排索引的原理 当谈到Elasticsearch时&#xff0c;分词与倒排索引是两个关键的概念&#xff0c;理解它们对于面试中展示对Elasticsearch工作原理的理解至关重要。 「1. 分词&#xff08;Tokenization&#xff09;&#xff1a;」 分词是将文本分解成一个个单独…

智能水肥一体化灌溉系统:提升农业生产效率的数字化解决方案

一、设备介绍(key-iot.com.cn)&#xff1a; 我们的星创易联设备是智能水肥一体化灌溉系统的核心组成部分。该设备由多个先进的传感器和执行器组成&#xff0c;可以对环境因素、土壤湿度和植物生长状态进行实时监测。其中包括&#xff1a; 1. 土壤湿度传感器&#xff1a;通过监…

电商API接口接入|电商爬虫实践附代码案例

1.爬虫是什么 首先应该弄明白一件事&#xff0c;就是什么是爬虫&#xff0c;为什么要爬虫&#xff0c;百度了一下&#xff0c;是这样解释的&#xff1a;网络爬虫&#xff08;又被称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追…

CTFHub:web-LD_PRELOAD-WP

解题思路 思路分析 根据资料可得知有四种绕过 disable_functions 的手法&#xff1a; 攻击后端组件&#xff0c;寻找存在命令注入的 web 应用常用的后端组件&#xff0c;如&#xff0c;ImageMagick 的魔图漏洞、bash 的破壳漏洞等等寻找未禁用的漏网函数&#xff0c;常见的执…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树(代码python实践)

文章目录 第5章 决策树—python 实践书上题目5.1利用ID3算法生成决策树,例5.3scikit-learn实例《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树 第5章 决策树—python 实践 import numpy as np import pandas as pd import matplotlib.pyplot as plt …

Python中容器类型的数据

目录 序列 序列的索引操作 加和乘操作 切片操作 成员测试 列表 创建列表 追加元素 插入元素 替换元素 删除元素 元组 创建元组 元组拆包 集合 创建集合 修改集合 字典 创建字典 修改字典 访问字典视图 遍历字典 若我们想将多个数据打包并且统一管理&…

分布式虚拟文件系统,如何实现多种存储系统的融合

随着大数据技术和人工智能技术的发展&#xff0c;各种框架应运而生&#xff0c;比如大数据领域中的MapReduce和Spark&#xff0c;人工智能领域中的TensorFlow和PyTorch等。为了给不同的计算框架提供存储服务&#xff0c;存储的服务类型也是很多&#xff0c;常见的如AWS的S3存储…

自然语言nlp学习四

5-5 BMTrain--ZeRO_哔哩哔哩_bilibili 5-6 BMTrain--Pipeline Parallel (流水线并行)_哔哩哔哩_bilibili 5-12 BMCook--背景介绍_哔哩哔哩_bilibili

梦幻水母生图咒语

中文&#xff1a; 珍珠和透明水晶水母漂浮在水池中&#xff0c;浅粉色风格&#xff0c;千年美学&#xff0c;柔和的雾气&#xff0c;转瞬即逝&#xff0c;山寨核&#xff0c;迷人&#xff0c;不加修饰 比例9:16&#xff0c;模型V6&#xff0c;风格默认 StartAI提示词翻译&am…

客户点赞,“信”任满满 | 竹云喜获近百封感谢信!

玉兔辞旧岁&#xff0c;威龙迎新春 在新春佳节来临之际 一封封感谢信、表扬信 纷至沓来 纸短情长 每一封感谢信的背后 都记载着一个动人的故事 字里行间情真意切 激励着竹云继续前行&#xff01; 国家电投 竹云项目组成员凭借丰富的业务、技术经验、专业的职业素养和较…

redhat8.6配置本地yum源

第一步先挂载本地镜像 df -h 查看是否有镜像&#xff0c;没有默认在/dev/dr0 以下为没有挂载图片2. 挂载本地镜像 mkdir /mnt/rd8 mount /dev/sr0 /mnt/rd8/ 挂载完毕再df -h 看一眼。已经存在/dev/sr03. 填写文件 [rootlinux-server ~]# cd /etc/yum.repos.d/ [rootlinux…

MySQL数据库基础合集

MySQL数据库基础合集 目录 MySQL数据库基础合集SQL关键字DDL关键字DML关键字DQL关键字DCL关键字约束关键字 SQL基础数据类型整数类型字符类型浮点类型时间类型 数据定义语言DDL1.查看数据库2.创建库3.删除库4.切换库5.创建表6.删除表7.查看表8.查看表属性9.插入列10.修改列11.设…

设计模式——模板方法模式(Template Method Pattern)

概述 模板方法模式&#xff1a;定义一个操作中算法的框架&#xff0c;而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术&#xff0c;它是一种类行为型模式。模板方法模式是结…

氢气传感器报警值:守护实验室安全的隐形卫士

随着科技的发展&#xff0c;我们的生活变得越来越便捷&#xff0c;但是与此同时&#xff0c;安全问题也日益凸显。其中&#xff0c;氢气作为一种清洁能源&#xff0c;被广泛应用于各个领域&#xff0c;但是如果不加以控制&#xff0c;氢气泄漏也可能带来严重的安全隐患。因此&a…