当前位置: 首页 > news >正文

杭州企业自助建站新浪体育最新消息

杭州企业自助建站,新浪体育最新消息,大公司网页设计用什么软件好,南京城乡建设局网站首页重建二叉树 题目描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。 提示: 1.vin.length pre.length 2.pre 和…

重建二叉树

题目描述
给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。
例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。
tupian1
提示:
1.vin.length == pre.length
2.pre 和 vin 均无重复元素
3.vin出现的元素均出现在 pre里
4.只需要返回根结点,系统会自动输出整颗树做答案对比
数据范围:n≤2000,节点的值:−10000≤val≤10000
要求:空间复杂度 O(n),时间复杂度 O(n)

思考了好几天没有想到解题方法,以下方案参考了大家的解题思路:

采用的方法:递归
递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。因此递归过程,最重要的就是查看能不能讲原本的问题分解为更小的子问题,这是使用递归的关键。

思路:二叉树的前序遍历,我们可以直到第一个元素是根节点,因为序列没有重复的元素,我们可以从中序遍历中找到根节点,将一个树分为左子树和右子树两个部分。
具体做法:

  1. 先根据前序遍历第一个点构建根节点;
  2. 然后根据中序遍历找到根节点在数组中的位置;
  3. 再按照字数的节点数将两个遍历的序列分割成子数组,将子数组送入函数构建子树;
  4. 直到子树的序列长度为0,结束递归。
class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param preOrder int整型一维数组 
# @param vinOrder int整型一维数组 
# @return TreeNode类
#
class Solution:def reConstructBinaryTree(self , preOrder: List[int], vinOrder: List[int]) -> TreeNode:# write code here# 分别获取中序遍历和前序遍历的长度len_pre = len(preOrder)len_vin = len(vinOrder)# 判断这两个长度都不为0if len_pre == 0 or len_vin == 0:return None# 构建根节点root = TreeNode(preOrder[0])# 从中序遍历中找到根节点所在的位置for i in range(len_vin):if preOrder[0] == vinOrder[i]:# 获取左子树的前序遍历left_pre = preOrder[:i]# 获取左子树的中序遍历left_vin = vinOrder[1:i+1]# 构建左子树root.left = reConstructBinaryTree(left_pre, left_vin)# 获取右子树的前序遍历right_pre = preOrder[i+1:]# 获取右子树的中序遍历right_vin = vinOrder[i+1:]# 构建右子树root.right = reConstructBinaryTree(right_pre, right_vin)breakreturn root
http://www.ds6.com.cn/news/28756.html

相关文章:

  • 游戏网站风控怎么做企业培训体系搭建
  • 怎么做招聘网站的调研seo一个月工资一般多少
  • 锦州电脑网站建设哪家培训机构学校好
  • 如何保护网站名开一个免费网站
  • 怎样自己做网站卖钱网络宣传推广方法
  • 谎称在赌博网站做维护网站seo方案案例
  • 怎么做学校子网站惠州seo代理商
  • 电子商务网站的特点seo综合查询怎么用
  • 招聘门户网站开发人员网络营销ppt
  • wordpress插入大图汕头seo代理
  • 提交网站地图百度有人工客服吗
  • 许昌建网站的公司在哪条路kj6699的seo综合查询
  • 东莞网络优化调查公司充电宝关键词优化
  • 利用高权重网站做关键词济南网站设计
  • 网站建设的视频品牌营销服务
  • 网站的公关和广告活动怎么做常州百度搜索优化
  • 可以做笔试面试题的网站站长工具5g
  • 自我介绍网站html360网站收录提交入口
  • 个人备案做非经营性网站百度爱采购关键词优化
  • 英文网站建设方法云盘搜
  • 长兴县建设管理网站优化设计四年级上册数学答案
  • 移动端网站开发项目宝鸡seo优化公司
  • 怎么做优惠卷网站精准推广的渠道有哪些
  • wordpress 后台文章 查询条件成都优化网站哪家公司好
  • 手机网站做安卓客户端邀请注册推广赚钱的app
  • iis如何用ip地址做域名访问网站百度搜索收录
  • 个人网站开发教程百度网页推广费用
  • 上海社保网站哪里做转入seo文章优化方法
  • 搭建本地网站设计网站一般多少钱
  • 西安网站建设报价方案软文是啥意思