题意: 输入一个正整数N(<=1000),接下来输入N个点的序号。如果刚才输入的序列是一颗二叉搜索树或它的镜像(中心翻转180°)的先序遍历,那么输出YES并输出它的后序遍历,否则输出NO。 trick: for(auto it:post) cout<<it<<((it!=post[n-1])?" ...
分类:
其他好文 时间:
2019-09-29 09:30:26
阅读次数:
95
LeetCode树模板 TreeNode 先序遍历 层序遍历 中序遍历 LeetCode 100 相同的树 这种递归形式几乎算是树的基本模板,三条件并列的尾递归。 LeetCode 101 对称二叉树 先序遍历一次左子树,交换先序遍历的左右子节点顺序遍历一次右子树,比较两次遍历得到的序列。 用不可能 ...
分类:
其他好文 时间:
2019-09-27 22:44:07
阅读次数:
121
·1.Binary Tree Preorder Traversal Morris先序遍历,时间复杂度O(n),空间复杂度O(1) 步骤: 1.如果当前节点的左孩子为空,则输出当前节点并将其右孩子作为当前节点。 2.如果当前节点的左孩子不为空,在当前节点的左子树中找到当前节点在中序遍历下的前驱节点。 ...
分类:
其他好文 时间:
2019-09-27 01:23:33
阅读次数:
96
1 ** 2 * 二叉树先序遍历非递归 3 * @param root 4 */ 5 public void preOrder_no_recursive(TreeNode root){ 6 if(root == null) return; 7 8 Stack<TreeNode> stack = ne... ...
分类:
其他好文 时间:
2019-09-26 16:05:38
阅读次数:
83
根据给出的先序遍历和中序遍历,画出二叉树。 先序遍历:DBACEGF 中序遍历:ABCDEFG 首先我们来看一下三种遍历方式: 1)先序遍历二叉树 (1)访问根节点 (2)先序遍历跟的左子树 (3)先序遍历根的右子树 2)中序遍历二叉树 (1)中序遍历根的左子树 (2)访问根节点 (3)中序遍历根的... ...
分类:
其他好文 时间:
2019-09-18 00:28:06
阅读次数:
80
二叉树的遍历方式常见的三种是:先序遍历(ABC)、中序遍历(BAC)、后序遍历(BCA) 先序遍历: 若二叉树为空,则空操作;否则: 中序遍历: 若二叉树为空,则空操作;否则: 后序遍历: 若二叉树为空,则空操作;否则: 在学习到 根据遍历序列确定二叉树 时,知道了:可以通过二叉树的先中或者中后遍历 ...
分类:
其他好文 时间:
2019-09-16 21:47:16
阅读次数:
93
[TOC] 一、二叉树的遍历 1.1 先序遍历 遍历过程为: 1. 访问根结点 2. 先序遍历其左子树; 3. 先序遍历其右子树。 先序遍历:A (B D F E)(C G H I) 1.2 中序遍历 遍历过程为: 1. 中序遍历其左子树; 2. 访问根节点; 3. 中序遍历其右子树。 中序遍历:( ...
分类:
其他好文 时间:
2019-09-13 11:27:05
阅读次数:
171
二叉树的遍历和线索二叉树 递归遍历 先序遍历 中序遍历 后序遍历 非递归遍历 先序遍历非递归算法 中序遍历非递归算法 后序遍历非递归算法 后序非递归遍历二叉树的顺序是先访问左子树,再访问右子树,最后访问根结点。 当用堆栈来存储结点时,必须分清楚返回根结点时是从左子树返回还是从右子树返回的。 所以,使 ...
分类:
其他好文 时间:
2019-09-12 00:02:17
阅读次数:
100
二叉树的实现(补充) 本次实现的二叉树包括二叉树的先序遍历,中序遍历和后序遍历以及二叉树的层序遍历,还包括二叉树的高度,叶子节点以及反转二叉树 二叉树的层序遍历依然是使用Python内置的deque实现一个队列,根据队列先进先出(FIFO)的性质,先把二叉树的根节点放入队列中,判断队列是否为空,如果 ...
分类:
其他好文 时间:
2019-08-25 14:05:08
阅读次数:
87
1 #include 2 #include 3 4 struct BTNode{ 5 char data;//数据域 6 struct BTNode * pLchild;//p是指针,L是左,child是孩子;即为左子树指针 7 struct BTNode * pRchild//右子树指针 8 } ... ...
分类:
其他好文 时间:
2019-08-20 23:52:04
阅读次数:
85