O(n)时间,O(1)空间对二叉树进行前序、中序、后序遍历。详细讲解看参考。public class Solution { public static void morrisPreorder(TreeNode root) { TreeNode cur = root; ...
分类:
其他好文 时间:
2014-09-09 22:58:39
阅读次数:
425
题目 : 后序遍历时间限制:10000ms单点时限:1000ms内存限制:256MB描述在参与过了美食节之后,小Hi和小Ho在别的地方又玩耍了一阵子,在这个过程中,小Ho得到了一个非常有意思的玩具——一棵由小球和木棍连接起来的二叉树!小Ho对这棵二叉树爱不释手,于是给它的每一个节点都标记了一个标号—...
分类:
其他好文 时间:
2014-09-09 21:28:59
阅读次数:
162
这三种常见的扁历方式,是考研面试等场合经常遇到的,在此做一个总结。
1、前序遍历比较简单:用指针p指向根节点,若p!=NULL且栈非空,则直接访问节点,并将节点的右孩子入栈,同时指针p向左孩子移动。
2、中序扁历:用指针p指向根节点,若p!=NULL且栈非空,则当前节点入栈,同时指针p向左孩子移动,出栈是指针指向当前节点的右孩子。
3、后序扁历相对复杂:需要设置一个辅助栈,标识该节点是否是第...
分类:
编程语言 时间:
2014-09-09 18:26:19
阅读次数:
211
给定一个BST的根节点, 试判断此BST是否为符合规则的BST?规则: 对于一个BST的节点,它左侧的所有节点(包括子节点)必须小于它本身;它右侧的所有节点(包括子节点)必须大于它本身;它的左右节点也必须满足上面两条.算法思路: 对于给定的根节点N, 先找到它左子节点L的最底层的右子节点MR, 比较...
分类:
其他好文 时间:
2014-09-09 16:00:18
阅读次数:
216
二叉树的遍历:
前序遍历:根节点->左子树->右子树
中序遍历:左子树->根节点->右子树
后序遍历:左子树->右子树->根节点
求下面树的三种遍历:
前序遍历:abdefgc
中序遍历:debgfac
后序遍历:edgfbca
详细的二叉树的操作可以看一下我之前写的文章
二叉树java
已知前序、中序遍历,求后...
分类:
其他好文 时间:
2014-09-09 12:56:38
阅读次数:
489
前序遍历二叉树int preorder_tree_walk(BinTreeNode * root){ if(root == NULL){ return -1; } stack s; BinTreeNode * p = root; while(!s.empt...
分类:
其他好文 时间:
2014-09-05 14:10:51
阅读次数:
170
只能根据前序中序或者中序后序重建二叉树,不可能根据前序和后序重建,因为需要中序去划分左右子树。
代码实现
/**
* 源码名称:ConstructBT.java
* 日期:2014-09-05
* 程序功能:重建二叉树(前序中序)
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
public class ConstructBT {
class...
分类:
其他好文 时间:
2014-09-05 13:01:55
阅读次数:
206
重建二叉树结构,给定了前序和中序,重建树形结构#include #include using namespace std;/*给定前序,中序,重建树结构例如假定:前序:adbcef中序:dbaecf后序:dbefca*/struct NODE{ NODE *pLeft; NODE *pR...
分类:
其他好文 时间:
2014-09-05 08:45:01
阅读次数:
317
时间限制:1 秒内存限制:32 兆特殊判题:否提交:31解决:19标签二叉树遍历题目描述二叉树的前序、中序、后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然...
分类:
其他好文 时间:
2014-09-04 14:35:19
阅读次数:
237