[LeetCode 106]Construct Binary Tree from Inorder and Postord

题目链接:construct-binary-tree-from-inorder-and-postorder-traversal

import java.util.Arrays;//根据中序和后序遍历构建二叉树/** * *Given Inorder and Postorder traversal of a tree, construct the binary tree. * * Note: You may assume that duplicates do not exist in the tree. * */public class ConstructBinaryTreeFromInorderAndPostorderTraversal {public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}//202 / 202 test cases passed.//Status: Accepted//Runtime: 390 ms//Submitted: 0 minutes agopublic TreeNode buildTree(int[] inorder, int[] postorder) {int len = postorder.length;if (len > 0) {TreeNode root = new TreeNode(postorder[len – 1]);int rootIndex = 0;// 找到根节点在中序遍历中的位置for (; rootIndex < len; rootIndex++) {if (inorder[rootIndex] == postorder[len – 1]) {break;}}// 分别构建左右子树root.left = buildTree(Arrays.copyOfRange(postorder, 0, rootIndex),Arrays.copyOfRange(inorder, 0, rootIndex));root.right = buildTree(Arrays.copyOfRange(postorder, rootIndex + 1, len),Arrays.copyOfRange(inorder, rootIndex, len – 1));return root;} else {return null;}}public static void main(String[] args) {// TODO Auto-generated method stub}}

,造物之前,必先造人。

[LeetCode 106]Construct Binary Tree from Inorder and Postord

相关文章:

你感兴趣的文章:

标签云: