题目1385:重建二叉树时间限制:1 秒内存限制:32 兆特殊判题:否提交:4419解决:1311题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2...
分类:
其他好文 时间:
2015-07-15 11:01:21
阅读次数:
164
样例题目来自LintCode, 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2
/ 1 3代码实现/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int va...
分类:
其他好文 时间:
2015-07-11 18:39:04
阅读次数:
137
对于一颗二叉树,可以根据先序遍历(或者后序遍历)和中序遍历(树中不含重复的数字)重新还原出二叉树。
解析:
1. 先序遍历序列的第一个元素必定是根节点,可以由此获取二叉树的根节点。
2. 根据根节点,在中序遍历序列中查找该节点,由中序遍历的性质可知,中序遍历中该根节点左边的序列必定在根节点的左子树中,而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树的起止位置。
3. 找到了左右子树前序遍历和中序遍历再用同样的方法分别构建左右子树,典型的递归思想。...
分类:
其他好文 时间:
2015-07-09 18:00:45
阅读次数:
345
嗯。。跟着陈越姥姥上数据结构,期末考试遇到一道从后序遍历和中序遍历推前序遍历的题,然后硬是不会做,今天突然有了思路,遂记下来:原题是这样的:一颗二叉树的后序遍历序列是FDEBGCA,中序遍历序列是FDBEACG,那么前序遍历序列是?思路如下:根据后序遍历的性质,最后访问的元素一定是根节点,可知该二叉...
分类:
其他好文 时间:
2015-07-09 00:47:24
阅读次数:
248
例如:求和为22的路径
求值步骤
规律:当用前序遍历的方式访问到某一节点时,我们把这个节点添加到路径上,并累加该节点的值,如果该节点为叶子节点并且路径中节点值的和刚好等于输入的整数,则当前的路径符合要求,我们把它打印出来。如果当前节点不是叶节点,则继续访问它的子节点。当前节点访问结束后,递归函数将自动回到它的父节点。因此我们在函数退出之前要在路径上删除当前节...
分类:
其他好文 时间:
2015-07-07 22:52:55
阅读次数:
176
【目标】建立如下所示的一棵二叉树,并且输出其对应的前序遍历、中序遍历、后序遍历。...
分类:
编程语言 时间:
2015-07-06 23:32:08
阅读次数:
213
题意:给出前序历遍和中序遍历的顺序,来推导后序遍历的顺序。
做法:把握两个要点,前序是 先根历遍的,所以前序的第一个是根。然后这个根把中序分为两半,左边是左子树,右边是右子树。然后递归下就ok了。...
分类:
其他好文 时间:
2015-07-06 23:31:25
阅读次数:
225
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。代码:package com.huawei;im...
分类:
其他好文 时间:
2015-07-06 23:08:56
阅读次数:
315
【目标】建立如下所示的一棵二叉树,并且输出其对应的前序遍历、中序遍历、后序遍历。...
分类:
编程语言 时间:
2015-07-06 17:59:55
阅读次数:
261
本文共列出了11个常见的二叉树遍历算法。二叉树的遍历主要有深度优先遍历和广度优先遍历。深度优先遍历包含前序遍历、中序遍历和后序遍历。值得一提的是, 其中的 Morris 算法 可以线性时间不需要额外空间(用户栈或系统栈空间)实现二叉树的前序遍历、中序遍历和后序遍历。关于Morris算法, 可参考ht...
分类:
编程语言 时间:
2015-07-06 11:41:08
阅读次数:
252