标签:
public class Solution { public TreeNode buildTree(int[] inorder, int[] postorder) { if (inorder == null || postorder == null || inorder.length != postorder.length || inorder.length == 0) { return null; } int length = inorder.length; int rootVal = postorder[length - 1]; int mid = 0; for (int i = 0; i < length; i++) { if (inorder[i] == rootVal) { mid = i; break; } } int[] leftIn = Arrays.copyOfRange(inorder, 0, mid); int[] rightIn = Arrays.copyOfRange(inorder, mid + 1, length); int[] leftPost = Arrays.copyOfRange(postorder, 0, mid); int[] rightPost = Arrays.copyOfRange(postorder, mid, length - 1); TreeNode root = new TreeNode(rootVal); root.left = buildTree(leftIn, leftPost); root.right = buildTree(rightIn, rightPost); return root; } }
知道copyOfRange(int[] array, int start, int end)方法,start和end要写准。
106 Construct Binary Tree from Inorder and Postorder Traversal
标签:
原文地址:http://www.cnblogs.com/77rousongpai/p/4513605.html