Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for a binary tree node.
- * public class TreeNode {
- * int val;
- * TreeNode left;
- * TreeNode right;
- * TreeNode(int x) { val = x; }
- * }
- */
- class Solution {
- public TreeNode buildTree(int[] inorder, int[] postorder) {
- return build(0, postorder.length - 1, inorder, postorder);
- }
- public TreeNode build(int start, int end, int[] in, int[] post) {
- if (start > end) return null;
- TreeNode root = new TreeNode(post[post.length - 1]);
- post = Arrays.copyOfRange(post, 0, post.length - 1);
- if (start == end) return root;
- int index = end;
- for (int i = start; i < end; i++) {
- if (in[i] == root.val) {
- index = i;
- }
- }
- root.right = build(index + 1, end, in, post);
- root.left = build(start, index - 1, in, post);
- return root;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement