#include#includeusing namespace std; //二叉树的定义 struct TreeNode { char val; TreeNode *left; TreeNode *right; TreeNode(int x='#') : val(x), left(NUL...
分类:
其他好文 时间:
2015-04-10 15:19:54
阅读次数:
136
题目:http://ac.jobdu.com/problem.php?pid=1385思路:前序遍历结果的第一个数字就是根节点,找到根节点在中序遍历中的位置,则该位置左边的即为左子树的中序遍历的结果。显然我们很容易就可以得到左右子树的前序和中序遍历结果,我们可以使用递归来构建。小知识:preorde...
分类:
其他好文 时间:
2015-04-08 12:25:26
阅读次数:
124
二叉树的遍历原因:将序列编程图或者二叉树的形式,确实很直观。但是,最终的处理是交给计算机,计算机的处理只有判断、循环等,也就是只可以处理先行序列。而二叉树的遍历就是将序列的树结构编程线性序列,将线性序列交给计算机处理。二叉树的遍历大致分为四种:前序遍历、中序遍历、后序遍历,层序遍历。前序遍历(从上向下):从根节点开始并且取根节点值,遍历根节点的所有左子树以及左子树的所有节点,然后再进行根节点的右子树...
分类:
其他好文 时间:
2015-04-07 17:50:10
阅读次数:
135
前序遍历:先访问跟结点,然后遍历左子树,最后遍历右子树。即“根左右”。
实现代码:
class Solution {
public:
vector preorderTraversal(TreeNode *root) {
if (root==NULL) {
return vector();
}
vector resu...
分类:
其他好文 时间:
2015-04-07 17:49:55
阅读次数:
120
思路:(1)需要了解前序遍历和和中序遍历的特点,前序遍历第一个元素即为根节点,然后再在中序遍历以这个根节点为界限得到宏观上的左子串和右子串,如下图(2)又可以将截取的子串分为新的子串问题,从而可以通过迭代来解决,(3)构建左子树:主要就是指针的运用,获取前序遍历左子串的起始地址和子串长度,中序遍历左...
分类:
其他好文 时间:
2015-04-05 20:14:13
阅读次数:
141
题目:
Given preorder and inorder traversal of a tree, construct the binary tree.Note:
You may assume that duplicates do not exist in the tree.
根据前序遍历和中序遍历结果构造二叉树。思路分析:
分析二叉树前序遍历和中序遍历的结果我们发现:
二叉树中序遍...
分类:
其他好文 时间:
2015-04-03 22:32:25
阅读次数:
234
题目:
Given a binary tree, return the preorder traversal of its nodes’ values.For example:
Given binary tree {1,#,2,3},1
\
2
/
3return [1,2,3].Note: Recursive solution is triv...
分类:
其他好文 时间:
2015-04-01 21:56:42
阅读次数:
96
二叉树的前序遍历 思路:小心程序运行栈溢出,用stack模拟 class Solution {public: vector preorderTraversal(TreeNode *root) { stack stk; vector res; if (root) stk.push(root); els...
分类:
其他好文 时间:
2015-04-01 11:10:06
阅读次数:
134
与第二章类似,LeetCode指定了TreeNode实现。为了方便后续习题的编写和测试,创建一个基础父类,包含TreeNode实现,以及create()和print()创建和打印树的方法。其中create()采用类似“堆”的方式,用数组表示树形结构,复习一下,左右子结点就是2*i和2*i+1。而print()方法采用前序遍历的方式,通过额外一个参数level确定当前结点的深度,从而打印一些制表符或...
分类:
其他好文 时间:
2015-03-28 11:34:43
阅读次数:
130
一、遍历二叉树
1.定义
二叉树的遍历(travering binary tree)是指从根结点出发,按照某种次序依次访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次。
2.前序遍历
(1)规则:若二叉树为空,则空操作返回。否则,先访问根结点,然后前序遍历左子树,再前序遍历右子树。
(2)实例
前序遍历结果为:A
BDGH CEIF
分析:当...
分类:
其他好文 时间:
2015-03-20 01:25:12
阅读次数:
206