首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在二叉树中插入节点-将迭代转换为递归

在二叉树中插入节点是指向已有的二叉树中添加一个新的节点。将迭代转换为递归是一种常见的算法优化技巧,可以简化代码逻辑并提高代码的可读性。

在二叉树中插入节点的过程可以分为以下几个步骤:

  1. 首先判断二叉树是否为空,如果为空,则将新节点作为根节点插入,并结束插入操作。
  2. 如果二叉树不为空,则从根节点开始遍历二叉树,找到合适的插入位置。
  3. 比较要插入的节点值与当前节点值的大小关系,如果小于当前节点值,则继续在当前节点的左子树中插入;如果大于当前节点值,则继续在当前节点的右子树中插入。
  4. 重复步骤3,直到找到一个空的位置,将新节点插入其中。

将迭代转换为递归的方法如下:

代码语言:txt
复制
def insert_node(root, value):
    if root is None:
        return Node(value)  # 创建新节点并返回

    if value < root.value:
        root.left = insert_node(root.left, value)  # 递归插入左子树
    else:
        root.right = insert_node(root.right, value)  # 递归插入右子树

    return root

这个方法使用了递归的方式,在每一次递归调用中,将当前节点的左子树或右子树作为新的根节点传入,直到找到合适的插入位置。

二叉树的插入操作可以应用于很多场景,比如构建搜索树、排序等。在腾讯云中,可以使用云数据库TDSQL、云数据库CynosDB等产品来存储和管理二叉树的节点数据。

  • 云数据库TDSQL:腾讯云提供的关系型数据库服务,支持高可用、高性能、弹性扩展等特性。可以用来存储和管理二叉树节点的数据。了解更多信息,请访问:云数据库TDSQL产品介绍
  • 云数据库CynosDB:腾讯云提供的分布式数据库服务,支持MySQL和PostgreSQL引擎。可以用来存储和管理二叉树节点的数据。了解更多信息,请访问:云数据库CynosDB产品介绍

以上是关于在二叉树中插入节点并将迭代转换为递归的完善且全面的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

二叉搜索树

二叉查找树满足以下性质:(假设二叉查找树中每个节点元素都是不同的,它也可以为空) 非空左子树的所有键值小于其根节点的键值; 非空右子树的所有键值大于其根节点的键值; 左,右两棵子树都是二叉搜索树 二叉搜索树本质上还是一棵二叉树...PTree T,int a); //迭代版中序遍历 PTree Insert(ElementType x, PTree T); //插入操作 PTree Delete(ElementType x...BST 二叉搜索树操作集的C++实现代码: #include "searchtree.h" //递归版本实现的查找函数,二叉树的平均深度是O(log n),可以递归的 Position Find(ElementType...S.empty()) { while (T) { S.push(T); //将T压入栈中 T = T->left; //转左子树 } if(!...{ T = T->right; } } if (x == T->data) //找到这个元素 { break; //如果要插入的元素已经在该树中存在

47820

一文横扫二叉树的所有遍历方法

转自景禹 今天我们谈一谈二叉树的四种遍历方式,看完保准让你对二叉树的遍历一网打尽。...上面的视频是二叉树的前序遍历的动画演示,你可以结合动画来看下面的迭代实现,需要注意的是,迭代实现中我们是先将根结点的右子节点入栈,然后在将左子节点入栈,这是因为栈的后进先出特性才如此处理的: class...接着我们一起来看一下后序遍历的三种实现方式:递归、迭代和取巧! 二叉树后序遍历的递归实现相当简单,只需要将前序遍历中res.add(root.val)移动到两个if语句之后即可。...,我们已知后序遍历的节点访问顺序为:左 → 右 → 中;我们将这个次序颠倒过来:中 → 右 → 左;有没有想到前序遍历的节点访问顺序呢?...(取巧的方法的动画在上面的视频中) 紧接着看代码,你绝对会有种豁然开朗的感觉,注意要逆序输出,只需要每次在链表的头部插入元素即可,此外,由于栈本身的特性,对于 中 → 右 → 左 ,我们应该现将左子节点入栈

63130
  • 二叉树:搜索树转成累加树

    每个节点的值介于 -104 和 104 之间。 树中的所有值 互不相同 。 给定的树为二叉搜索树。 思路 一看到累加树,相信很多小伙伴都会疑惑:如何累加?遇到一个节点,然后在遍历其他节点累加?...递归 遍历顺序如图所示: 本题依然需要一个pre指针记录当前遍历节点cur的前一个节点,这样才方便做累加。 pre指针的使用技巧,我们在二叉树:搜索树的最小绝对差和二叉树:我的众数是多少?...if (cur == NULL) return; 确定单层递归的逻辑 注意「要右中左来遍历二叉树」, 中节点的处理逻辑就是让cur的数值加上前一个节点的数值。...迭代法其实就是中序模板题了,在二叉树:前中后序迭代法和二叉树:前中后序统一方式迭代法可以选一种自己习惯的写法。...往期精彩回顾 二叉树:构造一棵搜索树 二叉树:修剪一棵搜索树 二叉树:搜索树中的删除操作 二叉树:搜索树中的插入操作 二叉树:搜索树的公共祖先问题 本周小结!

    56721

    二叉树:总结篇!(需要掌握的二叉树技能都在这里了)

    广度优先遍历 二叉树的层序遍历:通过队列模拟 求二叉树的属性 二叉树:是否对称 递归:后序,比较的是根节点的左子树与右子树是不是相互翻转 迭代:使用队列/栈将两个节点顺序放入容器中进行比较 二叉树:求最大深度...:前序,方便让父节点指向子节点,涉及回溯处理根节点到叶子的所有路径 迭代:一个栈模拟递归,一个栈来存放对应的遍历路径 二叉树:递归中如何隐藏着回溯 详解二叉树:找所有路径中递归如何隐藏着回溯 二叉树:求左叶子之和...递归:中序,双指针操作累加 迭代:模拟中序,逻辑相同 二叉树公共祖先问题 二叉树的公共祖先问题 递归:后序,回溯,找到左子树出现目标值,右子树节点目标值的节点。...迭代:不适合模拟回溯 二叉搜索树的公共祖先问题 递归:顺序无所谓,如果节点的数值在目标区间就是最近公共祖先 迭代:按序遍历 二叉搜索树的修改与构造 二叉搜索树中的插入操作 递归:顺序无所谓,通过递归函数返回值添加节点...迭代:按序遍历,需要记录插入父节点,这样才能做插入操作 二叉搜索树中的删除操作 递归:前序,想清楚删除非叶子节点的情况 迭代:有序遍历,较复杂 修剪二叉搜索树 递归:前序,通过递归函数返回值删除节点

    83641

    深度剖析头条面试真题 | 二叉树那点事儿

    只有题目做多了,我们才能从中提炼归纳,我们都知道二叉树问题大部分都是可以用递归来解决的,代码简洁到蒙圈,像我这种不太灵光的,还是倾向于用迭代来实现,当然最后还是会递归想一想,逃避不懂的知识点是不明智的。...: 100题 两棵相同的树问题 迭代层次遍历,保留树中的空节点,由于树节点的值是int,为了区分空节点,统一转换为string存储,这样一棵树经过转换就成为了vector类型,从而树的问题转换为了数组问题...101题 一棵镜像的树 这个还是采用迭代层次遍历,int转string 保存空节点为null存储到vector中,本题是一棵树的问题,有两种路子: a.层次遍历中每一层的节点时回文式的 b.层次遍历时先左后右存储一个...仍旧以上图的完全二叉树为例进行迭代层次遍历并且将int转换为string且存储null节点,这样整个二叉树就成了这样:[3,9,20,7,15,15,7,7,null,19,null]。...在遍历过程中我们不好判断null之后是否还会有其他非空节点,因此额外增加一个变量记录迭代遍历时队列中的非null节点个数,当队列中没有非空节点时遍历就可以结束了,这样我们存储的二叉树是没有空洞的,这个很重要

    53950

    相关题目汇总分析总结

    ) 根据二叉树的前序遍历和中序遍历(中序和后序)结果生成二叉树 递归 Convert Sorted Array to Binary Search Tree 将一个排序好的数组转换为一颗二叉查找树...Convert Sorted List to Binary Search Tree 将一个排序好的链表转换为一颗二叉查找树,这颗二叉查找树要求是平衡的。...Binary Tree Inorder Traversal 中序遍历一个二叉树 递归、迭代 Binary Tree Inorder Traversal 后序遍历一个二叉树 递归、迭代...递归 Flatten Binary Tree to Linked List 难题 把一棵二叉树变为链表(扁平化) 迭代 Sum Root to Leaf Numbers 要求所有从根节点到叶子节点组成的数字的和...,每个节点只会访问一次 迭代是一个环结构,每次迭代都是一个圈,不会拉掉其中的某一步,然后不断循环,每个节点都会被循环访问 二叉树在python中用法 root.val是该节点的值。

    1.1K20

    常见的二叉树系统题解

    文章目录 LeetCode 树的定义 二叉树 N叉树 二叉树遍历 二叉树前序遍历 递归 迭代 二叉树中序遍历 递归 迭代 二叉树后序遍历 递归 迭代:利用辅助类 迭代:逆序输出 二叉树的层次遍历 递归...迭代 二叉树的右视图 递归 迭代 在每个树行中找最大值 递归 迭代 二叉树的垂序遍历 解题思路 代码 二叉树的锯齿形层次遍历 递归 迭代 N 叉树遍历 N叉树的层序遍历 N叉树的前序遍历 递归 迭代 N...二叉搜索树的最近公共祖先 删除二叉搜索树中的节点 二叉搜索树中的搜索 二叉搜索树中的插入操作 深搜、广搜 相同的树 对称二叉树 递归 迭代 翻转二叉树 二叉树的最大深度 二叉树的最小深度 平衡二叉树 完全二叉树的节点个数...给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。...二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。

    19420

    【C++】二叉搜索树

    subLeft = subLeft->_left; } swap(root->_key, subLeft->_key); // 转换为在子树中递归删除...,可能需要删除当前的 root,传入引用即可在当前作用域改变上一个作用域中的 root; 当左右都不为空的时候,我们找到了替换的节点,交换了值后,可以转换为在 root 的右子树中递归删除,因为 root...二叉树的中序遍历 - - - 迭代实现 题目链接 -> Leetcode -94.二叉树的中序遍历 Leetcode -94.二叉树的中序遍历 题目:给定一个二叉树的根节点 root ,返回 它的 中序...二叉树的后序遍历 - - - 迭代实现 题目链接 -> Leetcode -145.二叉树的后序遍历 Leetcode -145.二叉树的后序遍历 — 迭代实现 题目:给你一棵二叉树的根节点 root...inorder 保证 为二叉树的中序遍历序列 思路是前序确定根,中序分割左右子树,将左右子树继续进行递归处理。

    12110

    leetcde算法面试套路之二叉树

    二叉树的遍历递归遍历递归的时候前中后序都能直接处理完了递归是前中后序遍历最简单也是最容易出理解的方法,不懂的画个图就好了迭代遍历 -- 双色标记法使用颜色标记节点状态,新节点为白色,已经访问的节点为灰色...,所以如果是中序遍历,左 - 中 - 右 ,那么在插入栈的时候要反过来 右 - 中 - 左按照那个男人的指示,正常我们就用递归做就好,就好像我们做非排序题排序的时候,sort 一下就好了,但是一旦面试官问到用另外的迭代方式的时候...如果遇到的节点是白色,则标记为灰色,然后将右节点,自身,左节点一次入栈 -- 中序遍历 * 3. 如果遇到的节点是灰色的,则将节点输出 * 4....注意这里是用 stack 栈来存储的,所以是后进先出,这里是前序遍历,中 - 左 - 右 ,那么在插入栈的时候要反过来 右 - 左 - 中 */var preorderTraversal = function...注意这里是用 stack 栈来存储的,所以是后进先出,所以如果是中序遍历,左 - 中 - 右 ,那么在插入栈的时候要反过来 右 - 中 - 左 */var inorderTraversal = function

    22430

    前端leetcde算法面试套路之二叉树

    二叉树的遍历递归遍历递归的时候前中后序都能直接处理完了递归是前中后序遍历最简单也是最容易出理解的方法,不懂的画个图就好了迭代遍历 -- 双色标记法使用颜色标记节点状态,新节点为白色,已经访问的节点为灰色...,所以如果是中序遍历,左 - 中 - 右 ,那么在插入栈的时候要反过来 右 - 中 - 左按照那个男人的指示,正常我们就用递归做就好,就好像我们做非排序题排序的时候,sort 一下就好了,但是一旦面试官问到用另外的迭代方式的时候...如果遇到的节点是白色,则标记为灰色,然后将右节点,自身,左节点一次入栈 -- 中序遍历 * 3. 如果遇到的节点是灰色的,则将节点输出 * 4....注意这里是用 stack 栈来存储的,所以是后进先出,这里是前序遍历,中 - 左 - 右 ,那么在插入栈的时候要反过来 右 - 左 - 中 */var preorderTraversal = function...注意这里是用 stack 栈来存储的,所以是后进先出,所以如果是中序遍历,左 - 中 - 右 ,那么在插入栈的时候要反过来 右 - 中 - 左 */var inorderTraversal = function

    25440

    前端leetcde算法面试套路之二叉树4

    二叉树的遍历递归遍历递归的时候前中后序都能直接处理完了递归是前中后序遍历最简单也是最容易出理解的方法,不懂的画个图就好了迭代遍历 -- 双色标记法使用颜色标记节点状态,新节点为白色,已经访问的节点为灰色...,所以如果是中序遍历,左 - 中 - 右 ,那么在插入栈的时候要反过来 右 - 中 - 左按照那个男人的指示,正常我们就用递归做就好,就好像我们做非排序题排序的时候,sort 一下就好了,但是一旦面试官问到用另外的迭代方式的时候...如果遇到的节点是白色,则标记为灰色,然后将右节点,自身,左节点一次入栈 -- 中序遍历 * 3. 如果遇到的节点是灰色的,则将节点输出 * 4....注意这里是用 stack 栈来存储的,所以是后进先出,这里是前序遍历,中 - 左 - 右 ,那么在插入栈的时候要反过来 右 - 左 - 中 */var preorderTraversal = function...注意这里是用 stack 栈来存储的,所以是后进先出,所以如果是中序遍历,左 - 中 - 右 ,那么在插入栈的时候要反过来 右 - 中 - 左 */var inorderTraversal = function

    24120

    文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题

    初始时,我们将根节点压入栈中。 3.在每一步中,我们从栈顶取出一个节点,输出它的关键字,然后将它的右子节点和左子节点(如果存在的话)压入栈中。这样,我们就可以按照先序遍历的顺序访问所有的节点。...在主函数中,我们创建了一个简单的二叉树进行测试。 在这里插入图片描述 在这里插入图片描述 360智脑: 以下是一个用Go语言实现的非递归遍历二叉树并输出每个结点的关键字的示例代码。...每次取出一个节点,然后弹出它的左右子节点,并将这些节点存储在一个新的栈中。这样,我们就可以在不修改原始树的情况下,将所有节点的关键字输出。...在这里插入图片描述 在这里插入图片描述 智谱清言: 在 Go 语言中,我们可以使用迭代的方式遍历二叉树,并输出每个节点的关键字。...在每次迭代中,我们首先检查cur的左子节点是否为空,如果为空,说明cur是一个叶节点,我们将cur的值加入到res中,并将cur指向其右子节点。

    24740

    文心一言 VS 讯飞星火 VS chatgpt (123)-- 算法导论10.4 4题

    在这里插入图片描述 360智脑: 以下是一个用Go语言实现的二叉树遍历函数,包括前序遍历、中序遍历和后序遍历: package main import ( "fmt" ) // 定义二叉树节点...在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 智谱清言: 以下是使用 Go 语言实现的一个 O(n) 时间过程,将含有 n 个节点的任意有根树转换为左孩子右兄弟表示法存储: package...最后,我们在main函数中创建了一个示例树,并调用traversal函数将其转换为左孩子右兄弟表示法。 这个过程的时间复杂度为 O(n),因为我们只需要遍历一次树即可。...dfs 函数使用递归的方式遍历树,同时使用一个切片 res 来保存每个节点的值。 在 dfs 函数中,首先将当前节点的值保存到 res 中,然后判断当前节点是否有左孩子。...如果有左孩子,则将左孩子的值保存到 res 中,并递归遍历左子树。如果没有左孩子,则遍历 res 中的值,找到一个大于当前节点值的值,并将当前节点的值保存到该位置上,然后递归遍历右子树。

    23161

    再谈堆排序:堆排序算法流程步骤透解—最大堆构建原理

    主要的区别在于,我们不是扫描整个列表来查找最大的项目,而是将列表转换为最大堆(父节点的值总是大于子节点,反之最小堆)以加快速度。...树和图的概念以及二叉树的基本性质》这里摘取二叉树排序需要的重点部分,再过一遍二叉树概述要了解堆首先得了解一下二叉树,在计算机科学中,二叉树是每个节点最多有两个子树的树结构。...(i) = 2i,i 的左子节点下标Right(i) = 2i + 1,i 的右子节点下标上面的转换为层序遍历Heapify堆化:将数组列表转换为堆(也称为“堆化”它)把数列的数值视为完全二叉树的结点(...在堆中定义以下几种操作:最大堆调整(Max-Heapify):将堆的末端子节点作调整,使得子节点永远小于父节点创建最大堆(Build-Max-Heap):将堆所有数据重新排序,使其成为最大堆堆排序(Heap-Sort...而且递归调用需要压栈/清栈,和迭代相比,性能上有略微的劣势。当然,按照20/80法则,这是可以忽略的。

    54030

    【Python数据结构系列】☀️《树与二叉树-基础知识》——知识点讲解+代码实现☀️

    大作业三:**将树和森林转换成二叉树** **操作1**:普通树转二叉树 **操作2**:森林转换为二叉树 数据结构之树和二叉树 第一部分 树和二叉树的基础知识 1、树和二叉树的定义 1.1 树的定义...2.4.2 构造线索二叉树 由于线索二叉树构造的实质是将二叉链表中的空指针改为指向前驱或后继的线索,而前驱或后继的信息只有在遍历时才能得到,因此线索化的过程即为在遍历的过程中修改空指针的过程,可用递归算法...树转换为二叉树的步骤是:   (1)将树的根节点直接作为二叉树的根节点   (2)将树的根节点的第一个子节点作为根节点的左儿子,若该子节点存在兄弟节点,则将该子节点的第一个兄弟节点(方向从左往右)作为该子节点的右儿子...  (3)将树中的剩余节点按照上一步的方式,依序添加到二叉树中,直到树中所有的节点都在二叉树中 森林转换为二叉树的步骤是:   (1)先把每棵树转换为二叉树;   (2)第一棵二叉树不动,从第二棵二叉树开始...大作业三:将树和森林转换成二叉树 操作1:普通树转二叉树 对于普通树转二叉树,要记住6个字口诀:左儿子,右兄弟;   实现的大致步骤是这样的:   (1)将树的根节点直接作为二叉树的根节点   (

    1K40

    LeetCode通关:连刷三十九道二叉树,刷疯了!

    那么从深度优先遍历和⼴度优先遍历进⼀步拓展,才有如下遍历⽅式: 深度优先遍历 前序遍历(递归法,迭代法) 中序遍历(递归法,迭代法) 后序遍历(递归法,迭代法) ⼴度优先遍历 层次遍历(迭代法...ps:注意啊,我们的写法将存储元素进列表放在了栈操作前面,栈的作用主要用来找右子树。 迭代和递归究其本质是一样的东西,不过递归里这个栈由虚拟机帮我们隐式地管理了。...迭代法中序遍历和前序遍历类似,只是我们访问节点的时机不同而已: 前序遍历需要每次向左走之前就访问根结点 而中序遍历先压栈,在出栈的时候才访问 将节点的所有左孩子压入栈中,然后出栈,出栈的时候将节点的值放入...(BST)的根节点和要插入树中的值,将值插入二叉搜索树。...返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。

    84620

    LeetCode 二叉树系统题解

    你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 ?...给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。...返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。...说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。...二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。

    95330

    疯狂java笔记之树和二叉树

    为了充分利用二义树的简单易用性,可以将普通树转换为二叉树,以二叉树的形式来保存柞通树,当程序需要树时,再将悦义树转换为普通树。 森林其实更简单,如果将一棵伶通树的根节点去掉,这棵树就变成了森林。...这个转换结果来看,多叉树1转换为二叉树的方法的关键思想就是:所有子节点只保留子节点,其他子节点转为左子节点的右子节点链。...按照这个转换思路,森林也可转换为二叉树————只要把森林当成一颗根节点被删除的多叉树即可。下图示范了将森林转换为二叉树的结果。 ?...插入操作 插入操作按如下步骤进行: 以排序二叉树的方法插入新节点,并将它设为红色。 进行颜色调换和树旋转 这种颜色调换和树旋转就比较复杂了,下面将分情况进行介绍。...在介绍中,把新插入的节点定义为N节点,把N节点的父节点定义为P节点,把P节点的兄弟节点定义为U节点,把P节点的父节点定义为G节点。 情形1:新节点N是树的根节点,没有父节点。

    1.2K20

    种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林

    ,指向新节点 } 5、调整红黑树 旋转与改变颜色 任何插入操作,在插入完成之后,都需要做一次调整性操作,将树的状态调整到符合RB-tree的要求。...在F中选取2棵根结点最小的树 作为左右子树 构造一棵新的二叉树,且新的二叉树的根结点左右子树根结点权值之和。 在F中删除这2棵子树,同时将新得到的二叉树加入F中。...森林转换为二叉树 森林是由若干棵树组成,可以将森林中的每棵树的根结点看作是兄弟,由于每棵树都可以转换为二叉树,所以森林也可以转换为二叉树。...将森林转换为二叉树的步骤是: (1)先把每棵树转换为二叉树; (2)第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点的右孩子结点,用线连接起来。...二叉树转换为树 二叉树转换为树是树转换为二叉树的逆过程,其步骤是: (1)若某结点的左孩子结点存在,将左孩子结点的右孩子结点、右孩子结点的右孩子结点……都作为该结点的孩子结点,将该结点与这些右孩子结点用线连接起来

    1.1K20

    重学数据结构(六、树和二叉树)

    :插入需要比较插入节点和当前节点的大小 /** * 将结点插入到二叉树中 * * @param bst 二叉树 * @param z 插入的节点...5.1.3、AVL树的插入 在平衡的二叉排序树BBST上插入一个新的数据元素e的递归算法可描述如下。...将一棵树转换为二叉树的方法是: (1) 树中所有相邻兄弟之间加一条连线; (2) 对树中的每个结点, 只保留它与第一个儿子结点之间的连线, 删去它与其他儿子结点之间的连线。...(3) 以树的根结点为轴心, 将整棵树顺时针转动一定的角度, 使之结构层次分明。 树转换为二叉树的转换过程示意图如下: 图44:树转换为二叉树的过程 ?...6.3、二叉树还原为树 树转换为二叉树这一转换过程是可逆的, 可以依据二叉树的根结点有无右儿子结点,将一棵二叉树还原为树, 具体方法如下: (1) 若某结点是其双亲的左儿子, 则把该结点的右儿子、 右儿子的右儿子

    81211
    领券