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

公司做网站需要什么资料网站开发面试都会问什么问题

公司做网站需要什么资料,网站开发面试都会问什么问题,济南企业网站制作,穹拓做网站LC109. 有序链表转换平衡二叉搜索树 题目要求(一)快慢指针1. 理解问题2. 解决思路3. 具体步骤4. 代码实现5. 复杂度分析6. 示例解释7. 总结 LC109. 有序链表转换平衡二叉搜索树 题目要求 (一)快慢指针 要将一个按升序排列的单链表转换为平衡的二叉搜索树(BST&…

LC109. 有序链表转换平衡二叉搜索树

    • 题目要求
    • (一)快慢指针
      • 1. 理解问题
      • 2. 解决思路
      • 3. 具体步骤
      • 4. 代码实现
      • 5. 复杂度分析
      • 6. 示例解释
      • 7. 总结

LC109. 有序链表转换平衡二叉搜索树

题目要求

在这里插入图片描述

(一)快慢指针

要将一个按升序排列的单链表转换为平衡的二叉搜索树(BST),可以采用以下步骤:

1. 理解问题

  • 单链表:链表中的节点按升序排列。
  • 平衡二叉搜索树:树的左右子树高度差不超过1,且左子树的值小于根节点,右子树的值大于根节点。

2. 解决思路

由于链表是升序排列的,我们可以将其视为二叉搜索树的中序遍历结果。为了构建平衡的BST,我们需要找到链表的中间节点作为根节点,然后递归地构建左子树和右子树。

3. 具体步骤

  1. 找到链表的中间节点

    • 使用快慢指针法找到链表的中间节点。快指针每次走两步,慢指针每次走一步,当快指针到达链表末尾时,慢指针指向的就是中间节点。
  2. 递归构建BST

    • 将中间节点作为根节点。
    • 递归地构建左子树(链表的前半部分)和右子树(链表的后半部分)。
  3. 处理边界条件

    • 如果链表为空,返回 null
    • 如果链表只有一个节点,直接返回该节点作为树的根节点。

4. 代码实现

class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextclass TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef sortedListToBST(head):if not head:return None# 找到链表的中间节点def findMiddle(head):slow = headfast = headprev = Nonewhile fast and fast.next:prev = slowslow = slow.nextfast = fast.next.next# 断开链表if prev:prev.next = Nonereturn slow# 递归构建BSTdef buildBST(head):if not head:return Nonemid = findMiddle(head)root = TreeNode(mid.val)# 如果只有一个节点,直接返回if head == mid:return root# 递归构建左子树和右子树root.left = buildBST(head)root.right = buildBST(mid.next)return rootreturn buildBST(head)

5. 复杂度分析

  • 时间复杂度:O(N log N),其中 N 是链表的长度。每次递归都需要找到中间节点,时间复杂度为 O(N),递归深度为 O(log N)。
  • 空间复杂度:O(log N),递归栈的深度为 O(log N)。

6. 示例解释

对于输入 head = [-10,-3,0,5,9]

  • 中间节点是 0,作为根节点。
  • 左子树由 [-10, -3] 构建,右子树由 [5, 9] 构建。
  • 最终得到的平衡BST为 [0,-3,9,-10,null,5]

7. 总结

通过找到链表的中间节点并将其作为根节点,然后递归地构建左子树和右子树,我们可以将一个升序链表转换为一个平衡的二叉搜索树。这种方法既保证了树的平衡性,又充分利用了链表的升序特性。

http://www.yayakq.cn/news/452111/

相关文章:

  • 网站顶部公告代码中国交通建设集团有限公司招聘
  • app和网站的关系如何建网络营销网站
  • 网站建设签约广告设计就业前景
  • 做视频网站一般多少钱dedecms网站地图前台路径不修改
  • 网站空间过期tomcat网站开发
  • 周到的网站建设各大网站发布信息
  • 个人做网站的流程关键词权重
  • 手机网站建设技术自建网站怎么关闭
  • 什么网站容易收录建设网站公司需要哪些证件
  • 苏州建设网站公司建站行业的发展趋势
  • 怎么查看网站的ftp地址高校网站建设需求分析报告
  • 陕西省建设网站 五大员过期上海服装贸易公司排名
  • 网页设计与网站建设教学视频wordpress 优酷 html5
  • 服装品牌网站怎么做域名备案用的网站建设方案
  • 网站的建设与设计论文在北京注册公司有什么好处
  • 上海网站建设阿里云发布网站
  • 天津 网站建设摄影网站设计与实现
  • 用什么编程语言做网站好做电影网站需要什么软件
  • 如何确定网站建设空间怎么做微商的微网站
  • asp.net小型网站开发吉林省高等级公路建设局 网站
  • 网站开发可以入无形资产吗游戏推广拉人渠道
  • 潍坊软件网站开发wordpress 添加 常规
  • 建设部科研申报网站用着不好爱廷玖达泊西汀
  • 巴彦淖尔市做网站公司网站做好了怎么做后台管理
  • 公司内部网站怎么制作站长之家域名查询大全
  • 网站建设的功能和目标网页美工设计百度
  • 企业3合1网站建设价格公司做宣传网站
  • 网站 短链接怎么做一个备案号可以绑定几个网站
  • 唐山网站建设多少钱《水利建设与管理》杂志社网站
  • 设计公司组织架构seo网站做推广