Construct Binary Tree from Preorder and Inorder Traversal
原题链接Construct Binary Tree from Preorder and Inorder Traversal
给定一个二叉树的先序遍历和中序遍历,要求重现这棵二叉树
另先序遍历的序列为preorder,中序遍历的序列为inorder,节点个数为n
根据先序遍历的特点,可知preorder[0]一定是整棵二叉树的根节点,那么,如果已确定根节点值在中序遍历序列inorder中的下标是i,就一定有
- inorder[0 : i - 1]这些值属于根节点的左子树
- inorder[i + 1, n - 1]这些值属于根节点的右子树
因为中序遍历是从最左边开始遍历,所以当遍历到根节点inorder[i]时,之前遍历到的节点一定都属于左子树
那么现在的目的就是如何确定左右子树的根节点,由先序遍历可知