@@ -10,17 +10,17 @@ public class ConstructBinaryTreeFromInorderAndPostorderTraversal {
10
10
int [] postOrder ;
11
11
12
12
public TreeNode buildTree (int [] inorder , int [] postorder ) {
13
- inOrderIndices = getIndicesMap (inorder );
13
+ this . inOrderIndices = getIndicesMap (inorder );
14
14
this .postOrder = postorder ;
15
15
return buildTreePostIn (0 , inorder .length - 1 , 0 , postorder .length - 1 );
16
16
}
17
17
18
- private TreeNode buildTreePostIn (int is , int ie , int ps , int pe ) {
19
- if (ps > pe || is > ie ) return null ;
20
- final TreeNode root = new TreeNode (postOrder [pe ]);
21
- int ri = inOrderIndices .get (postOrder [pe ]);
22
- root .left = buildTreePostIn (is , ri - 1 , ps , ps + ri - is - 1 );
23
- root .right = buildTreePostIn (ri + 1 , ie , ps + ri - is , pe - 1 );
18
+ private TreeNode buildTreePostIn (int inOrderStart , int inOrderEnd , int postOrderStart , int postOrderEnd ) {
19
+ if (postOrderStart > postOrderEnd || inOrderStart > inOrderEnd ) return null ;
20
+ final TreeNode root = new TreeNode (postOrder [postOrderEnd ]);
21
+ int ri = inOrderIndices .get (postOrder [postOrderEnd ]);
22
+ root .left = buildTreePostIn (inOrderStart , ri - 1 , postOrderStart , postOrderStart + ri - inOrderStart - 1 );
23
+ root .right = buildTreePostIn (ri + 1 , inOrderEnd , postOrderStart + ri - inOrderStart , postOrderEnd - 1 );
24
24
return root ;
25
25
}
26
26
0 commit comments