> For the complete documentation index, see [llms.txt](https://voyz.gitbook.io/voyz-algorithm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voyz.gitbook.io/voyz-algorithm/shu/er-cha-shu-gou-zao-by-zhong-xu-hou-xu.md).

# 【二叉树】构造by中序后序

## LeetCode 106. 从中序与后序遍历序列构造二叉树

### 题目

```
根据一棵树的中序遍历与后序遍历构造二叉树。

注意:
你可以假设树中没有重复的元素。

例如，给出

中序遍历 inorder = [9,3,15,20,7]
后序遍历 postorder = [9,15,7,20,3]
返回如下的二叉树：

    3
   / \
  9  20
    /  \
   15   7
```

### 题解

#### 递归

```javascript
var buildTree = function(inorder, postorder) {
    if(inorder.length === 0) return null;

    let root_val = postorder[postorder.length-1],
        root_index_inorder = inorder.indexOf(root_val),
        root = new TreeNode(root_val);

    let inorder_left = inorder.slice(0,root_index_inorder),
        inorder_right = inorder.slice(root_index_inorder+1),
        postorder_left = postorder.slice(0,inorder_left.length),
        postorder_right = postorder.slice(inorder_left.length,-1);

    root.left = buildTree(inorder_left,postorder_left);
    root.right = buildTree(inorder_right,postorder_right);

    return root;
};
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://voyz.gitbook.io/voyz-algorithm/shu/er-cha-shu-gou-zao-by-zhong-xu-hou-xu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
