先序遍历,交换子树即可,注意空节点的情况,这种简单题考的就是细节... /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), ...
分类:
其他好文 时间:
2017-10-13 20:10:29
阅读次数:
122
对于二叉树的遍历方式一般分为三种先序、中序、后序三种方式: 先序遍历(根左右)若二叉树为空,则不进行任何操作:否则1、访问根结点。2、先序方式遍历左子树。3、先序遍历右子树。 中序遍历 (左根右)若二叉树为空,则不进行任何操作:否则1、中序遍历左子树。2、访问根结点。3、中序遍历右子树。 后序遍历 ...
分类:
其他好文 时间:
2017-10-08 19:01:04
阅读次数:
151
对于二叉树的遍历基本上分为三种。前序遍历,中序遍历,后序遍历。先讲第一种,前序遍历。前序遍历就是说,第一步,先访问根结点,然后再访问左子树,最后是访问右子树。就拿图中的树来讲吧。先序遍历,先访问根节点。于是,第一步先访问结点A。接着访问左子树,通过观察发现,..
分类:
其他好文 时间:
2017-10-01 00:18:50
阅读次数:
267
1.如果一棵二叉树的中序遍历是BAC,那么他的先序遍历不可能是() A.ABC B.CBA C.ACB D.BAC 答案 //1. C ...
分类:
其他好文 时间:
2017-09-23 10:47:51
阅读次数:
196
首先,二叉树递归遍历分为先序遍历、中序遍历和后序遍历。 先序遍历为:根节点+左子树+右子树 中序遍历为:左子树+根节点+右子树 后序遍历为:左子树+右子树+根节点 (只要记住根节点在哪里就是什么遍历,且都是先左再右) 举个例子,如二叉树: 这棵树的先序遍历为:1 2 3 4 5 中序遍历为:2 1 ...
分类:
其他好文 时间:
2017-09-21 23:21:02
阅读次数:
184
简介 遍历二叉树就是按照某种顺序,将树中的结点都枚举一遍,且每个结点仅仅访问一次。因为树不是线性的结构,遍历不像线性表那样简单,因此他的遍历需要特点的算法来完成。 从某种角度讲,对二叉树的遍历就是将树形结构转换为线性结构的操作。 二叉树的遍历方法主要有如下几种: 先序遍历:先访问root结点,再先序 ...
分类:
其他好文 时间:
2017-09-20 17:52:03
阅读次数:
214
红黑树的性质: (1) Every node is either red or black. (2) The root is black. (3) Every leaf (NULL) is black. (4) If a node is red, then both its children are ...
分类:
其他好文 时间:
2017-09-18 13:20:20
阅读次数:
138
参考:http://blog.csdn.net/u010607031/article/details/37578957 //#include<stdio.h>#include<string.h>#include<iostream>using namespace std;const int N = 2 ...
分类:
其他好文 时间:
2017-09-17 13:45:31
阅读次数:
117
先序遍历(Preorder Traversal) 根-左-右 1. 递归 Java 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * ...
分类:
其他好文 时间:
2017-09-17 13:26:03
阅读次数:
163
花了半天时间学习AVL树,AVL树只要有LL,RR,LR,RL四种旋转操作,动态增加与减少都需要四种操作结合。AVL树比普通二叉树的结构体多了一个高度,用于保证左右子节点高度差小于2。在计算高度的时候,最好自己写一个函数,因为要判断是否为NULL,NULL则表示为0。如果用指针去取高度,为NULL的 ...
分类:
其他好文 时间:
2017-09-14 18:37:56
阅读次数:
171