题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的谦虚遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的头结点。
struct ListNode
{
int data;
ListNode* pLeft;
ListNode* pRigth;
};
前序遍历是先访问根结点然后访问左子树,再访问右子树。
中序遍历是先访问左子树然后访问根结点,再访问右子树。
访问顺序都是递归访问,前序的第一个数字就是根结点,然后根据中序区分左右子树。创建左右子树,左右子树也是二叉树,递归创建即可。
一下代码是剑指offer上的内容,注释是在自己的理解,请各位多多指教