博客
关于我
重建二叉树
阅读量:370 次
发布时间:2019-03-05

本文共 417 字,大约阅读时间需要 1 分钟。

我们需要根据前序遍历和中序遍历结果来重建二叉树。以下是详细的步骤说明:

  • 确定根节点:前序遍历的第一个元素是整个二叉树的根节点。

  • 在中序遍历中定位根节点:找到根节点在中序遍历中的位置。左子树的中序遍历是从起始位置到根节点位置前的部分,右子树的中序遍历是从根节点位置后面的部分。

  • 分割前序遍历:根据左子树的中序长度,分割出左子树的前序部分和右子树的前序部分。左子树的前序部分对应根节点左子树的前序遍历,右子树的前序部分对应根节点右子树的前序遍历。

  • 递归构建子树:分别对左子树和右子树进行递归构建,直到所有节点都被正确地分配。

  • 具体实现如下:

    • 递归函数定义:使用一个辅助函数,参数包括当前处理的前序和中序数组的起始和结束位置。

    • 根节点位置计算:通过前序数组中的根节点值,在中序数组中找到其对应的位置,确定左子树和右子树的范围。

    • 递归构建子树:分别递归处理左子树和右子树。

    通过以上步骤,就可以根据给定的前序和中序遍历结果,正确地重建二叉树。

    转载地址:http://jefwz.baihongyu.com/

    你可能感兴趣的文章
    ubuntu中安装scikit-learn
    查看>>
    面向对象的三大特征
    查看>>
    SpringCloud和SprinBoot之间的关系
    查看>>
    剑指offer打卡Day14:数组中只出现一次的数字
    查看>>
    maven打包可执行文件jar
    查看>>
    javascript定义变量及数据类型介绍
    查看>>
    C语言的运算符和表达式
    查看>>
    【模拟】优美三角剖分
    查看>>
    【普及模拟】交换
    查看>>
    椭圆曲线密码系统——椭圆曲线
    查看>>
    Vue实现选项卡功能
    查看>>
    数据结构——链表
    查看>>
    【Python】面向对象2:之抽象基类:import abc,metaclass=abc.ABCMeta
    查看>>
    【Python】面向对象,封装
    查看>>
    接口又是个啥?
    查看>>
    uni-app请求头中携带token
    查看>>
    常用的 Git 命令和小技巧(1)
    查看>>
    vue中接收后台的图片验证码并显示
    查看>>
    springboot入门(1)---整合MyBatis
    查看>>
    Vue入门学习笔记(1)
    查看>>