zoukankan      html  css  js  c++  java
  • Construct Binary Tree from Inorder and Postorder Traversal

     1 public class Solution {
     2     public TreeNode buildTree(int[] inorder, int[] postorder) {
     3         // IMPORTANT: Please reset any member data you declared, as
     4         // the same Solution instance will be reused for each test case.
     5         if(inorder == null||postorder == null||inorder.length == 0||postorder.length==0)
     6             return null;
     7         return buildTree(inorder, postorder, 0, inorder.length-1, 0 ,inorder.length-1);
     8     }
     9     
    10     private TreeNode buildTree(int[] inorder, int[] postorder, int instart, int inend, int postart, int poend)
    11     {
    12         if(instart > inend)
    13             return null;
    14         TreeNode node = new TreeNode(postorder[poend]);
    15         if(instart == inend)
    16             return node;
    17         int mid = 0;
    18         for(int i = instart; i <= inend; i++)
    19         {
    20             if(inorder[i] == postorder[poend])
    21             {
    22                 mid = i;
    23                 break;
    24             }
    25         }
    26         node.left = buildTree(inorder, postorder, instart, mid - 1, postart, postart + (mid - 1 - instart));
    27         node.right = buildTree(inorder, postorder, mid + 1, inend, poend + mid - inend, poend - 1);
    28         return node;
    29     }
    30 }
  • 相关阅读:
    day 06小结
    day 05小结
    day 05作业
    day 04作业
    day 03作业
    今日小结
    day 02小结
    hdu 4608 I-number(13多校#1 ,1009)
    zoj 2316 Matrix Multiplication(D)
    zoj 2316 Matrix Multiplication(2-D)
  • 原文地址:https://www.cnblogs.com/jasonC/p/3418213.html
Copyright © 2011-2022 走看看