在此之前回顾前序遍历和中序遍历:
1,前序遍历:
基本规则,总是先访问根节点在左节点,在右节点
递归解法:
class Solution {
public:
vector result;
vector preorderTraversal(TreeNode* root) {
if(root){
result.push_back(root...
分类:
其他好文 时间:
2016-01-24 11:42:41
阅读次数:
131
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。如果输入的前序遍历和中序遍历的结果中都不含反复的数字。比如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}。则重建二叉树并输出它的后序遍历序列。输入:输入可能包括多个測试例子。对于每一个測试案...
分类:
其他好文 时间:
2016-01-21 13:42:03
阅读次数:
114
前序遍历,也叫先根遍历,遍历的顺序是,根,左子树,右子树遍历结果:ABDECF 中序遍历,也叫中根遍历,顺序是 左子树,根,右子树遍历结果:DBEAFC 后序遍历,也叫后根遍历,遍历顺序,左子树,右子树,根遍历结果:DEBFCA 先序输出:A B D G H E C K F I J中序输出:G D ...
分类:
其他好文 时间:
2016-01-03 19:33:25
阅读次数:
159
今天看了一些关于平和查找二叉树的问题,顺便也复习了一下二叉树的遍历规则,写一下学习文档。树的遍历顺序大体分为三种:前序遍历(先根遍历、先序遍历),中序遍历(中根遍历),后序遍历(后根遍历)。如图所示二叉树:前序遍历:前序遍历可以记为根左右,若二叉树为空,则结束返回。前序遍历的规则:(1)访问根节点(...
分类:
其他好文 时间:
2016-01-03 17:28:14
阅读次数:
142
二叉树中的前序遍历是先访问根结点,再访问左子树,右子树。
中序遍历是先访问左子树,再是根结点,最后是右子树。
后序遍历是先访问左子树,再是右子树,最后是根结点。
算法思路是先根据前序遍历的第一个结点或者后序遍历的最后一个结点,查找对应在中序遍历中的位置,就可以确定左子树包含的元素和右子树包含的元素,最后通过递归来实现就可以了。
二叉树的表示形式为
//二叉树的结构表示为
class Tr...
分类:
编程语言 时间:
2016-01-02 01:08:51
阅读次数:
197
前序遍历,递归,先遍历根节点,再遍历左节点/** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNode left; * public...
分类:
其他好文 时间:
2015-12-31 12:17:39
阅读次数:
162
思路:将p入栈并访问p.val,遍历左子树;遍历完左子树返回时,栈顶元素应为p,出栈,再先序遍历p的右子树。代码:/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * ...
分类:
其他好文 时间:
2015-12-30 00:23:06
阅读次数:
212
// 1.求二叉树中的节点个数// 2.求二叉树的深度// 3.前序遍历,中序遍历,后序遍历// 4.分层遍历二叉树(按层次从上往下,从左往右)// 5.将二叉查找树变为有序的双向链表// 6.求二叉树第K层的节点个数// 7.求二叉树中叶子节点的个数// 8.判断两棵二叉树是否结构相同// 9.判...
分类:
编程语言 时间:
2015-12-24 13:24:20
阅读次数:
260
两种解法,第一个是利用了前序遍历递增的特点public class Solution { long count = Long.MIN_VALUE; public boolean isValidBST(TreeNode root) { if (root == null) { ...
分类:
其他好文 时间:
2015-12-04 10:50:02
阅读次数:
143
这套题来自于牛客网剑指offer的第四题,由于本题涉及到了对树的递归操作,而且在边界上自己计算时犯了小错误,这里记录一下:题目描述如下:题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5...
分类:
其他好文 时间:
2015-10-29 11:23:39
阅读次数:
238