根 左 右 左 根 右 根据前序和中序的根的位置划分左右子树的数组范围: pre {1,2,4,7,3,5,6,8} mid {4,7,2,1,5,3,8,6} if(pre[left]==mid[tag]) 则 找到了根的位置(left是当前树范围终pre第一个元素) mid的起始位置到j-1为左子树数组范围,j+1到mid的终止位置为右子树的数组范围 pre的起始位置+1到pre+左子树大小为左子树的范围,pre+左子树大小+1到pre的终止位置为右子树范围。 再用递归思想递归的new出结点 TreeNode* root = new TreeNode(Spre[left1]); ...