zoukankan      html  css  js  c++  java
  • build tree

    有二叉树的前序遍历和后序遍历,构造二叉树

    /**
    * Definition for binary tree
    * public class TreeNode {
    * int val;
    * TreeNode left;
    * TreeNode right;
    * TreeNode(int x) { val = x; }
    * }
    */
    public class Solution {
    public TreeNode buildTree(int[] preorder, int[] inorder) {
    HashMap<Integer,Integer> map = new HashMap<Integer,Integer> ();
    for(int i=0;i<inorder.length;i++){
    map.put(inorder[i], i);
    }

    return build(map,preorder,0,preorder.length-1,inorder,0,inorder.length-1);
    }
    private static TreeNode build(HashMap<Integer,Integer> map, int[] preorder,int ps,int pe,int[] inorder,int is,int ie) {
    if(ps>pe) return null;
    TreeNode root=new TreeNode(preorder[ps]);
    if(ps==pe) return root;
    int i=map.get(preorder[ps]);
    int leftlength=i-is;
    root.left=build(map,preorder,ps+1,ps+leftlength,inorder,is,i-1);
    root.right=build(map,preorder,ps+i+1-is,pe,inorder,i+1,ie);
    return root;
    }
    }

  • 相关阅读:
    生成器,生成器表达式。
    device busy
    memcached
    ps f
    Eviews9.0---软件安装
    免费提取百度文库 doc 文件
    Matlab---length函数
    Matlab 路径函数
    matlab中disp函数的简单用法
    MATLAB---dir函数
  • 原文地址:https://www.cnblogs.com/weilq/p/3638218.html
Copyright © 2011-2022 走看看