码迷,mamicode.com
首页 > 其他好文 > 详细

【Leetcode】Construct Binary Tree from Inorder and Postorder Traversal

时间:2016-05-22 12:25:05      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/

题目:

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

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

思路:

easy

算法

[java] view plain copy
 技术分享技术分享
  1. public TreeNode buildTree(int[] inorder, int[] postorder) {  
  2.     if (inorder == null || inorder.length == 0 || postorder == null || postorder.length == 0) {  
  3.         return null;  
  4.     }  
  5.   
  6.     // 在前序排列中,从头开始查找定位: 第一个既在后序也在中序的元素位置,以及它在后序中的位置  
  7.     int start = -1, pindex = -1;// start是后序中的位置 index是中序的位置  
  8.     for (int i = postorder.length - 1; i >= 0; i--) {  
  9.         int tmp = search(inorder, postorder[i]);  
  10.         if (tmp >= 0) {  
  11.             pindex = tmp;  
  12.             start = i;  
  13.             break;  
  14.         }  
  15.     } // ====end  
  16.     TreeNode root = new TreeNode(postorder[start]);  
  17.     if (inorder.length == 1) {  
  18.         return root;  
  19.     }  
  20.     // 根据index划分中序排列  
  21.     int leftInorder[] = Arrays.copyOfRange(inorder, 0, pindex);  
  22.     int rightInorder[] = Arrays.copyOfRange(inorder, pindex + 1, inorder.length);  
  23.   
  24.     int newpreorder[] = Arrays.copyOfRange(postorder, 0, start);  
  25.   
  26.     root.left = buildTree(leftInorder, newpreorder);  
  27.     root.right = buildTree(rightInorder, newpreorder);  
  28.     return root;  
  29. }  
  30.   
  31. public int search(int nums[], int target) {  
  32.     for (int i = 0; i < nums.length; i++) {  
  33.         if (nums[i] == target)  
  34.             return i;  
  35.     }  
  36.     return -1;  
  37. }  

【Leetcode】Construct Binary Tree from Inorder and Postorder Traversal

标签:

原文地址:http://blog.csdn.net/yeqiuzs/article/details/51472689

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!