根据先序遍历和中序遍历建立二叉树
˼· 先序遍历服从规则 “根左右” ,所以由此可知,对于一个先序遍历得到的数组,第一个元素一定是 根节点 ; 中序遍历服从规则 ”左根右“ ,所以由此可知,对于一个中序遍历得到的数组,根节点左边的元素都属于根节点的 左子树 ,而根节点右边的元素都属于根节点的 右子树 ; 所以,我们可以先通过先序遍历的第一个元素确定根节点,然后通过中序遍历结合根节点,获得当前根节点的左右子树,再将子树看成一棵独立的树,继续使用先序遍历判断根节点,中序遍历判断子树的方式,最终建立起整棵树; 假设有一棵二叉树,先序遍历为 {1,2,4,7,3,5,6,8} ,中序遍历为 {4,7,2,1,5,3,8,6} ,则建树过程如下: 首先,通过先序遍历可知树的根节点为 1 ,则在中序遍历中,1左边的元素 4,7,2 即为根的左子树的元素,而 1 右边的元素 5,3,8,6 即为根节点的右子树; 对于左子树 4,7,2 来说,在先序遍历中,这三个点的顺序为 2,4,7 ,则 2 为根节点,而在中序遍历中, 4,7 均在 2 的左边,则 4,7 均为以 2 为根树的左子树,且没有右子树; 对于 4,7 这两个节点来说,先序遍历中, 4 节点在7节点之前,所以 4 为根节点,而 7 作为子树,在中序遍历中, 7 在 4 之后,所以 7 为右子树; 对于根节点 1 的右子树 5,3,8,6 来说,在先序遍历中, 3