private TreeNode helper(int[] preorder, int[] inorder, int preStart, int preEnd, int inStart, int inEnd){ if (preStart > preEnd || inStart > inEnd) returnnull;
int i = inStart;
for (; i <= inEnd; i++) { if (inorder[i] == preorder[preStart]) break; }
TreeNode root = new TreeNode(preorder[preStart]); root.left = helper(preorder, inorder, preStart + 1, preStart + i - inStart, inStart, i - 1); root.right = helper(preorder, inorder, preStart + i - inStart + 1, preEnd, i + 1, inEnd);
近期评论