10.4 1 那棵树就长成下面这个样子 ~~~ / 18 12 10 7 4 2 21 5 / ~~~ 下面就借用10.4 1提供的数据,构建一棵树,然后分别对它做10.4 2所要求的递归遍历和10.4 3所要求的非递归遍历。 递归遍历的方式有三种,前序、中序、后序,实现上的差异,无非是把Trave ...
分类:
编程语言 时间:
2018-10-15 20:48:10
阅读次数:
327
1 function TreeNode(val) { // 树节点构造方式 2 this.val = val; 3 this.left = null; 4 this.right = null; 5 } 6 7 function generateTree() { 8 let root = new Tr... ...
分类:
编程语言 时间:
2018-10-09 18:13:44
阅读次数:
185
1.先序遍历 2.中序遍历 3.后序遍历(重难点) 在树的结构体结点中添加一个表示访问次数的数据域,visit: 遍历的代码程序: ...
分类:
其他好文 时间:
2018-10-05 22:39:50
阅读次数:
211
二叉树如上图所示。 一、递归遍历 二、非递归遍历 要借助栈或队列 初始化把根节点压栈,访问根节点并弹出,然后依次将右节点、左节点入栈,直到栈为空。 思路:回溯。访问根节点的左孩子,访问左孩子的左孩子,直到左孩子为空,这个过程中把所有访问过的节点压栈,当左孩子为空,pop该节点,访问该节点的右孩子。空 ...
分类:
其他好文 时间:
2018-09-29 14:40:15
阅读次数:
162
树的递归遍历非常简单,也是写树的遍历时最常用的写法。但是我发现自己对树的非递归遍历并不十分熟悉,所以把三种非递归遍历都写了一遍,以后看到这篇记录博客也可以帮助自己好好回想熟悉一下。 Leetcode对应习题:前序,中序,后序。 相对而言,这三种非递归遍历的难度——前序 < 中序 < 后序。 对于第三 ...
分类:
其他好文 时间:
2018-09-12 00:01:59
阅读次数:
237
1、二叉树 1.1、非递归遍历 1.1.1、前序 1.1.2、中序 1.1.3、后序 1.1.4、层次 2、排序 2.1、快排 2.2、希尔 2.3、归并 3、栈 3.1、括号匹配 ...
分类:
其他好文 时间:
2018-08-28 23:57:05
阅读次数:
319
https://www.cnblogs.com/SHERO-Vae/p/5800363.html ...
分类:
其他好文 时间:
2018-08-12 18:48:58
阅读次数:
139
二叉树的后序遍历的话,利用stack进行非递归遍历,要先访问每个节点的左子树,在访问右子树,然后访问自身, stack 一直循环,当栈顶节点(cur)的左右子树都是None的时候, 或者当pre节点不是None的时候,同时pre和cur节点的左右子节点中的一个相等的时候 可以出栈并访问 ...
分类:
其他好文 时间:
2018-08-10 01:27:04
阅读次数:
137
二叉树的创建与遍历(非递归遍历左右中,破坏树结构) 创建 二叉树的递归3种遍历方式: 1,先中心,再左树,再右树 2,先左树,再中心,再右树 3,先左树,再右树,再中心 二叉树的非递归4种遍历方式: 1,先中心,再左树,再右树 2,先左树,再中心,再右树 3,先左树,再右树,再中心 4,层级遍历 二 ...
分类:
编程语言 时间:
2018-07-20 13:49:58
阅读次数:
135