LeetCode第105题:从前序与中序遍历序列构造二叉树(中等)

本篇博客主要介绍LeetCode第105题,即如何根据前序遍历和中序遍历序列构建二叉树。题目要求在没有重复元素的情况下,通过这两个序列重建二叉树。解题思路包括利用前序遍历找到根节点,再结合中序遍历定位根节点,并递归构建子树。题解提供了两种方法,一种是构建哈希映射辅助找根节点,另一种是通过中序遍历中根节点的位置进行递归构建。
摘要由CSDN通过智能技术生成

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[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值