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 }
  • 相关阅读:
    看清爱情的本质,学会受伤。
    美股课堂:美国银行开户亲历记
    京JS 2013
    果皮移动
    果皮移动 移动电商!
    http://www.cutt.com/
    简网APP工场-服务介绍
    Get started
    中科院青年公寓
    c++ replaceAll
  • 原文地址:https://www.cnblogs.com/jasonC/p/3418213.html
Copyright © 2011-2022 走看看