解题思路-LeetCode第105题:从前序与中序遍历序列构造二叉树

解题思路-LeetCode第105题:从前序与中序遍历序列构造二叉树
题目描述:
根据一棵树的前序遍历与中序遍历构造二叉树。
注意:你可以假设树中没有重复的元素。

示例:
给出

     前序遍历 preorder = [3,9,20,15,7]
     中序遍历 inorder = [9,3,15,20,7]

返回如下的二叉树:

        3
       / \
      9  20
        /  \
       15   7

解题思路:
对于前序遍历,根节点一定在preorder数组的第一位pStart,左右子树在其右侧(但不知道那些属于左子树或者右子树)。
对于中序遍历,通过前序遍历找到的根节点的值我们通过遍历inorder数组的方式找到根节点,然后我们使用找到的根节点的位置求出左右子树在数组中的长度,从而确定其在preorder数组中的位置,再把左右子树单独拎出来递归创建。

代码如下:
在这里插入图片描述
提交后,通过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值