根据前序和中序遍历 给定二叉树
前序(根节点-左节点-右节点):A B D E H C F G
中序(左节点-根节点-右节点):D B E H A F C G
第一步:根据前序就可以判断遍历的第一个就是祖宗节点,为A ,然后我们就可以把中序遍历以A节点分开。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gmhEbTdg-1652803777707)(C:\Users\民宸\AppData\Roaming\Typora\typora-user-images\image-20220517225549866.png)]](https://i-blog.csdnimg.cn/blog_migrate/b69daad7d5b16cac8b3c643f049482b6.png)
第二步:再看前序A的后一个节点,为B,根据前序的性质为左子树的根节点,所以我们把中序遍历的B再次像之前那样截取出来。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y9W7FDoW-1652803777709)(C:\Users\民宸\AppData\Roaming\Typora\typora-user-images\image-20220517230323134.png)]](https://i-blog.csdnimg.cn/blog_migrate/43a99f87e219f5cf1b6173936bc9c832.png)
(由以上图可知,相信小伙伴们可以知道D就是左边的节点了,我就不判断了,我们直接看后面。)
第四步:ABD根据前序全部遍历完毕。再次依据上述方法构造左子树。在前序遍历和中序遍历H都在E的右边,为E的右节点。