首页 > 代码库 > 重建二叉树

重建二叉树

对于一颗二叉树,可以根据先序遍历(后序遍历)和中序遍历重新还原出二叉树。

主要通过递归实现。

关键是找出对应左右子树的长度,之后传递先序遍历的开始节点、结束节点,中序遍历的开始节点、结束节点。

代码:

#include <iostream>

using namespace std;

typedef struct tree{
	int data;
	struct tree *lchild;
	struct tree *rchild;
}Tree, *pTree;

pTree reConstruct(int *startPre,int *endPre,int *startIn,int *endIn){
	pTree root = new Tree();
	root->data = http://www.mamicode.com/startPre[0];>
运行结果:

和先序遍历输入一样: