zoukankan      html  css  js  c++  java
  • 105. Construct Binary Tree from Preorder and Inorder Traversal



    Given preorder and inorder traversal of a tree, construct the binary tree.

    Note:
    You may assume that duplicates do not exist in the tree.

     1 class Solution {
     2     public TreeNode buildTree(int[] preorder, int[] inorder) {
     3         return help(preorder,0,preorder.length-1,inorder,0,inorder.length-1);
     4     }
     5     private TreeNode help(int[] preorder,int pre_start,int pre_end,int[] inorder,int in_start,int in_end){
     6         if(in_start>in_end || pre_start>pre_end) return null;
     7         
     8         
     9         TreeNode root = new TreeNode(preorder[pre_start]);
    10         int j = in_start;
    11         while(preorder[pre_start]!=inorder[j]&& j <=pre_end)
    12             j++;
    13         //注意下标!!!!!!!!
    14         root.left = help(preorder,pre_start+1,pre_start+(j-in_start),inorder,in_start,j-1);
    15         root.right = help(preorder,pre_start+(j-in_start)+1,pre_end,inorder,j+1,in_end);
    16         return root;
    17     }
    18 }
  • 相关阅读:
    Spring----BeanPostProcessor
    spring lifeCycle
    lambda表达式
    mybatis ----SqlSessionManager
    带权随机
    Protocol Buffers学习笔记
    Java的Lambda表达式
    mysql之group_concat函数
    Java排序之归并排序
    Java排序之计数排序
  • 原文地址:https://www.cnblogs.com/zle1992/p/8360249.html
Copyright © 2011-2022 走看看