前序遍历的非递归实现 中序遍历的非递归实现 1 void InOrder2(BTNode *root) { 2 BTNode *p = root; 3 stack<BTNode *> S; 4 while (p != NULL || !S.empty()) { 5 if (p) { // 找到树中最 ...
分类:
编程语言 时间:
2020-07-11 19:21:14
阅读次数:
59
1.要点二叉树遍历重复在查找中查找某个数时(重复+查找=二重循环),应考虑是否可以用map2.题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。3.示例给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder... ...
分类:
其他好文 时间:
2020-06-26 16:49:59
阅读次数:
54
1. 题目 给定一棵二叉树的头节点head,完成二叉树的先序、中序和后序遍历。要求时间复杂度为O(N),额外空间复杂度为O(1) 2. 思路 常规的遍历二叉树的思路是递归和非递归的解法,但是这两种解法都不能做到额外空间复杂度为O(1)。 首先来看普通的递归和非递归解法,导致它们空间复杂度高的原因是使 ...
分类:
其他好文 时间:
2020-06-25 23:51:14
阅读次数:
123
以前读书使用递归和指针来实现二叉树...让我非常头疼... 如果要实现递归和指针,,相信会让很多人望而却步...然而我只是要学习和使用他罢了.. 今天突然想试试其他简单的方式实现...希望能帮助到一些人...大神请不要笑我.. 代码等我有空的时候会附上... <iframe src="//playe ...
分类:
其他好文 时间:
2020-06-20 19:36:46
阅读次数:
76
树的第一部分(数据结构之树(Tree)(一)_树的基础)介绍了树的各个基础:什么是树、树的特点、树的表示方法、树的种类、树在存储结构中的表示、树/森林/二叉树之间的转换(原理)等。 这部分主要介绍下二叉树的创建及遍历(一种实现,主要了解二叉树遍历的过程)。遍历是二叉树重要的运算,是其他运算的基础。树 ...
分类:
其他好文 时间:
2020-06-18 01:34:38
阅读次数:
53
周期 新增代码行 学习时长 发布博客量 学习目标 知识总结 改进措施 第八周 70 6 2 对二叉树操作熟练 二叉树的遍历 逻辑需要再理清 第九周 90 5 1 线索二叉树 遍历结点的前去或后继结点的地址 多做题去熟练 第十周 90 7 1 树、森林和二叉树的关系 三种表示法及三者之间互相转换 需要 ...
分类:
其他好文 时间:
2020-06-09 17:00:41
阅读次数:
68
复原二叉树 http://codeup.cn/problem.php?cid=100000611&pid=0 题目简述: 给你一棵二叉树的前序遍历和中序遍历,要求输出这棵二叉树的后序遍历 输入无限组,没有停止要求(文件读入) 补充知识: 既然做到了这道题,那就补充一下关于还原二叉树及二叉树遍历的知识 ...
分类:
其他好文 时间:
2020-06-09 14:28:44
阅读次数:
71
非递归遍历二叉树借用List实现的,具体实现方法如下。前序遍历非递归代码实现:publicList<Integer>preOrder(TreeNoderoot){List<Integer>list=newArrayList<>();if(root==null){returnlist;}list.add(root.val);//根据前序遍历的特性,先将根节点的值加
分类:
其他好文 时间:
2020-06-09 09:17:36
阅读次数:
64
思路: 通常我们进行二叉树的遍历(前序遍历、中序遍历和后序遍历)时,不考虑空节点。但有时需要我们将空节点也放入遍历序列中。 由于考虑了空节点,不能再用是否为空作为递归结束的条件。容易想到,只要一个节点非空,并且它的左右叶节点不同时为空,则其左右叶节点均要被遍历。这样我们就得到了考虑空节点的遍历。 以 ...
分类:
其他好文 时间:
2020-05-31 13:09:56
阅读次数:
116
地址 https://leetcode-cn.com/problems/symmetric-tree/ 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,n ...
分类:
其他好文 时间:
2020-05-31 12:55:56
阅读次数:
49