LeetCode第105题:从前序与中序遍历序列构造二叉树(中等)
- 题目:根据一棵树的前序遍历与中序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素
- 解题思路:用前序找到根节点,再用中序找到相等的为根,再找到对应的子叶节点。再用递归把各节点连接起来。但是,没捋明白怎么递归。。。有了以下半成品。
class Solution {
TreeNode ans = new TreeNode();
TreeNode left = new TreeNode();
TreeNode right = new TreeNode();
public TreeNode buildTree(int[] preorder, int[] inorder) {
ans.val = preorder[0];
int i = 0;
while(i<inorder.length){
int yezi = new int[2];
yezi = find(preorder,inorder,i);
if(yezi[0]!=-1){
left.val = yezi[0];
ans.left = left;
}
if(yezi[1]!=-1){
right.val = yezi[1];
ans.left = right;
}
i++;
}
}
public int[