题解 | #重建二叉树#

重建二叉树

https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6

import java.util.*;
/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
//1.从头遍历pre
//2.找到vin上对应的元素
//3.如果为空,就为空,否则构建节点
//4.将自己的元素构建节点
//5.将左边元素传入左边建树
//6.将右边元素传入右边建树

public class Solution {

    // TreeNode root = null;
    public TreeNode reConstructBinaryTree(int[] pre,int[] vin){
        if(pre.length == 0 ){
            return null;
        }
        TreeNode node = new TreeNode(pre[0]);
        int k ;

        for(k = 0;k<vin.length;k++){
            if(pre[0]==vin[k]){
                break;
            }
        }
        int[] left = Arrays.copyOfRange(vin,0,k);
        int[] right = Arrays.copyOfRange(vin,k+1,vin.length);
        if(left.length>0){
            int[] pre_left = Arrays.copyOfRange(pre,1,left.length+1);
            node.left = reConstructBinaryTree(pre_left,left);
        }
        if(right.length>0){
            int[] pre_right = Arrays.copyOfRange(pre,left.length+1,vin.length);
            node.right = reConstructBinaryTree(pre_right,right);
        }    
        return node;
    }
}

//     public TreeNode reConstructBinaryTree(int [] pre,int [] vin) {
//         if(pre.length == 0 ){
//             return null;
//         }
//         TreeNode node = new TreeNode(pre[0]);
//         int k ;

//         for(k = 0;k<vin.length;k++){
//             if(pre[0]==vin[k]){
//                 break;
//             }
//         }
//         int[] left = Arrays.copyOfRange(vin,0,k);
//         int[] right = Arrays.copyOfRange(vin,k,vin.length);
//         if(left.length>0){
//             int[] pre_left = Arrays.copyOfRange(pre,1,left.length+1);
//             node.left = construct(pre_left,left);
//         }
//         if(right.length>0){
//             int[] pre_right = Arrays.copyOfRange(pre,left.length+1,vin.length);
//             node.right = construct(pre_right,right);
//         }    
    

//         return node; 
//     }
// }

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务