import java.util.*; import java.util.Arrays; /**
- Definition for binary tree
- public class TreeNode {
- 
int val;
- 
TreeNode left;
- 
TreeNode right;
- 
TreeNode(int x) { val = x; }
- } */
public class Solution {
public TreeNode reConstructBinaryTree(int [] pre,int [] vin) {
    if(pre.length == 0 && vin.length == 0){
        return null;
    }
    //头节点
    TreeNode pRoot = new TreeNode(pre[0]);
    //递归解决
    for(int i = 0; i < vin.length; i++){
        if(pre[0] == vin[i]){
            pRoot.left = reConstructBinaryTree(Arrays.copyOfRange(pre, 1, i + 1), Arrays.copyOfRange(vin, 0, i));
            pRoot.right = reConstructBinaryTree(Arrays.copyOfRange(pre, i + 1, vin.length), Arrays.copyOfRange(vin, i + 1, vin.length));
        }
    }
    return pRoot;
}
}

 京公网安备 11010502036488号
京公网安备 11010502036488号