zoukankan      html  css  js  c++  java
  • 重建二叉树

    题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。

    思路:找到值相同的节点,递归解决。。。。。

    /**
     * Definition for binary tree
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
     public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
          if(pre.length==0||in.length==0){
              return null;
          }
            TreeNode node=new TreeNode(pre[0]);
            for(int i=0;i<in.length;i++){
                if(pre[0]==in[i]){
                    node.left=reConstructBinaryTree(Arrays.copyOfRange(pre,1,i+1),Arrays.copyOfRange(in,0,i));
                    node.right=reConstructBinaryTree(Arrays.copyOfRange(pre,i+1,pre.length),Arrays.copyOfRange(in,i+1,in.length));
                }
            }
            return node;
        }
  • 相关阅读:
    scjp考试准备
    scjp考试准备
    scjp考试准备
    scjp考试准备
    maven学习手记
    maven学习手记
    ExtJS MVC 学习手记3
    调整maven配置文件
    ExtJS MVC学习手记 2
    ExtJS MVC学习手记 1
  • 原文地址:https://www.cnblogs.com/team42/p/6682043.html
Copyright © 2011-2022 走看看