LeetCode.105 - 从前序与中序遍历序列构造二叉树
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。
思路
- 先序遍历的第一个元素对应的是树的根节点
- 根据 preorder[0](即根节点)找到其在 inorder 中的位置,根节点左侧为左子树的中序遍历结果,右侧为右子树的中序遍历
- 根据左子树的长度,在 preorder 中可以得到左右子树的先序遍历结果
- 递归得到答案
1 | var buildTree = function (preorder, inorder) { |