C++实现重建二叉树,假设输入的前序遍历和中序遍历的结果中都不含重复的数字。如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回
解题思路如下:
1、首先建立4个vector用来存放前序遍历和中序遍历的左右子树;
2、由于前序遍历的第1个元素就是根节点,则在中序遍历中找到它记为Head,则中序遍历中Head左边的长度为Head的几个元素为中序遍历的左子树;同理在前序遍历中第1个元素右边长度为Head的几个元素为前序遍历的左子树;
3、然后以Head为分界线,把他们的左右子树分别放入各自新建的vector中;
4、接着...
原创
2019-04-24 21:20:43 ·
1453 阅读 ·
0 评论