Skip to content

Commit 69e0b99

Browse files
Sean PrashadSean Prashad
authored andcommitted
Update 105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal.java
1 parent b4b7ad9 commit 69e0b99

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

Tree Depth First Search/105_Construct_Binary_Tree_from_Preorder_and_Inorder_Traversal.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@ private TreeNode helper(int[] preorder, int[] inorder, int preStart, int preEnd,
88
return null;
99
}
1010

11-
TreeNode root = new TreeNode(preorder[preStart]);
1211
int rootIdx = 0;
1312

1413
for (int i = inStart; i <= inEnd; i++) {
15-
if (inorder[i] == root.val) {
14+
if (preorder[preStart] == inorder[i]) {
1615
rootIdx = i;
17-
break;
1816
}
1917
}
2018

21-
root.left = helper(preorder, inorder, preStart + 1, preEnd, inStart, rootIdx - 1);
22-
root.right = helper(preorder, inorder, preStart + rootIdx - inStart + 1, preEnd, rootIdx + 1, inEnd);
19+
TreeNode t = new TreeNode(preorder[preStart]);
2320

24-
return root;
21+
int leftSubtreeSize = rootIdx - inStart;
22+
23+
t.left = helper(preorder, inorder, preStart + 1, preStart + leftSubtreeSize, inStart, rootIdx - 1);
24+
t.right = helper(preorder, inorder, preStart + leftSubtreeSize + 1, preEnd, rootIdx + 1, inEnd);
25+
26+
return t;
2527
}
2628
}

0 commit comments

Comments
 (0)