题目的链接在这里:https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6
- 题目大意
- 一、示意图
- 二、解题思路
- 递归
题目大意 给定节点数为 n 二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示
一、示意图 二、解题思路
递归递归
代码如下:
import java.util.*;
public class Solution {
public TreeNode reConstructBinaryTree(int [] pre,int [] vin) {
//通过给前序和中序遍历来生成二叉树 前序是 根 左 右 中序是 左 根 右
//肯定是要用递归的
//先创建根节点
//先做边界判断
if(pre.length==0||vin.length==0)
return null;
TreeNode treeNode=new TreeNode(pre[0]);
//然后要找到在vin中对应的位置
int space=0;
for(int i=0;i


![java 剑指offer之[数据结构 中等]JZ4 重建二叉树 java 剑指offer之[数据结构 中等]JZ4 重建二叉树](http://www.mshxw.com/aiimages/31/271303.png)
