活跃农民
- 积分
- 636
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2019-7-19
- 最后登录
- 1970-1-1
|
class Solution {
public TreeNode buildTree(int[] preorder, int[] inorder) {
Map<Integer, Integer> inMap = new HashMap<>();
int len = inorder.length;
for(int i = 0; i < inorder.length; i++){
inMap.put(inorder, i);
}
TreeNode root = helper(preorder, 0, len - 1, inorder, 0, len - 1, inMap);
return root;
}
public TreeNode helper(int[] pre, int preStart, int preEnd,
int[] in, int inStart, int inEnd,
Map<Integer, Integer> inMap)
{
System.out.println(preStart + "***");
if(preStart > preEnd || inStart > inEnd) return null;
int val = pre[preStart];
System.out.println(val);
TreeNode root = new TreeNode( pre[preStart] );
int inPosition = inMap.get( pre[preStart] );
int leftRange = inPosition - inStart;
root.left = helper( pre, preStart + 1, preStart + leftRange,
in, inStart, inPosition - 1,
inMap);
root.right = helper( pre, preStart + leftRange + 1, preEnd,
in, inPosition + 1, inEnd,
inMap);
return root;
}
}
第36行leftRange写错了
|
|