从前序遍历与中序遍历序列构造二叉树
我们可以知道 中序遍历时先遍历完左子树 再遍历根结点最后遍历右子树,前序遍历是先遍历根结点再遍历左子树,最后遍历右子树,综上可知,前序遍历的(根+左子树)个数 = 中序遍历的(左子树+根)个数。利用这个性质,可知下边的:
对于前序遍历(根左右)
设前序遍历出的数组开始下标为preLeft,结束为preRight
对于中序遍历(左根右)
设中序遍历出数组开始下标为inLeft,结束下标为inRight
我们可以知道 中序遍历时先遍历完左子树 再遍历根结点最后遍历右子树,前序遍历是先遍历根结点再遍历左子树,最后遍历右子树,综上可知,前序遍历的(根+左子树)个数 = 中序遍历的(左子树+根)个数。利用这个性质,可知下边的:
对于前序遍历(根左右)
设前序遍历出的数组开始下标为preLeft,结束为preRight
对于中序遍历(左根右)
设中序遍历出数组开始下标为inLeft,结束下标为inRight