首页/新闻资讯/正文详情

DeepSeek LeetCode 109. 有序链表转换二叉搜索树 Python3实现

发布时间:2026/9/26 11:15:44 来源:云帆数科 栏目:资讯中心
DeepSeek    LeetCode 109. 有序链表转换二叉搜索树 Python3实现
LeetCode 109. 有序链表转换二叉搜索树 — Python3 实现思路中序遍历模拟二叉搜索树BST的中序遍历结果是有序的而给定的链表恰好也是有序的。因此可以模拟中序遍历的过程来构建 BST先计算链表的长度 n。递归函数 build(start, end) 表示用链表在区间 [start, end] 内的节点构建子树。取 mid (start end) // 2 作为当前子树的根节点在链表中的位置。先递归构建左子树然后取当前链表节点作为根链表指针后移再递归构建右子树。这样每个节点只访问一次且不需要额外数组。代码# Definition for singly-linked list.classListNode:def__init__(self,val0,nextNone):self.valval self.nextnext# Definition for a binary tree node.classTreeNode:def__init__(self,val0,leftNone,rightNone):self.valval self.leftleft self.rightrightclassSolution:defsortedListToBST(self,head:ListNode)-TreeNode:# 1. 计算链表长度n0curheadwhilecur:n1curcur.nextcurhead# 用于中序遍历的指针defbuild(start:int,end:int)-TreeNode:nonlocalcurifstartend:returnNonemid(startend)//2# 先构建左子树leftbuild(start,mid-1)# 当前链表节点即为根节点nodeTreeNode(cur.val)curcur.nextnode.leftleft# 再构建右子树node.rightbuild(mid1,end)returnnodereturnbuild(0,n-1)复杂度分析· 时间复杂度O(n)每个节点被访问一次。· 空间复杂度O(log n)递归栈深度为树的高度由于构建的是平衡 BST高度为 O(log n)。另一种简单解法转数组如果不想模拟中序也可以先把链表转为数组然后递归取中点建树classSolution:defsortedListToBST(self,head:ListNode)-TreeNode:vals[]whilehead:vals.append(head.val)headhead.nextdefbuild(l:int,r:int)-TreeNode:iflr:returnNonemid(lr)//2nodeTreeNode(vals[mid])node.leftbuild(l,mid-1)node.rightbuild(mid1,r)returnnodereturnbuild(0,len(vals)-1)· 时间复杂度O(n)· 空间复杂度O(n)额外数组模拟中序的写法空间更优推荐使用。

相关推荐

SOM:无监督学习的「聚类之王」,为什么它能「自组织」?
SOM:无监督学习的「聚类之王」,为什么它能「自组织」?

从竞争学习到 Kohonen 网络,理解无监督聚类的数学本质开头:不需要标签也能学习? 上一篇我们学习了 PCA,它是有监督的降维(需要标签来计算方差)。 今天我们学习自组织映射(SOM)——一… · 2026/9/26 11:15:44

DeepSeek    LeetCode 109. 有序链表转换二叉搜索树 Rust实现
DeepSeek LeetCode 109. 有序链表转换二叉搜索树 Rust实现

LeetCode 109. 有序链表转换二叉搜索树 — Rust 实现 思路:转数组 递归构建 由于链表有序,且二叉搜索树(BST)的中序遍历结果也是有序的,最直接的做法是: 将链表所有值存入一个 Vec。在有序数组上递归&… · 2026/9/26 11:15:44

Claude Code 接 MySQL + Loki + Grafana 三个 MCP server,从告警到定位 Bug 压缩到 4 分钟
Claude Code 接 MySQL + Loki + Grafana 三个 MCP server,从告警到定位 Bug 压缩到 4 分钟

PagerDuty 弹「order-svc 订单量 430%」,客服群说用户付款 5 秒后订单还是「待支付」。我的第一反应不是开 Agent,而是开三个窗口——MySQL 看订单表堆积、Loki 翻下游回调日志、Grafana 拉 latency 曲线。三套工具三种查询语法,光是把「同一… · 2026/9/26 11:15:44

2026年8月更新:Codex CLI 接入 TaoToken 统一 Key,GPT-5.6 Agent Plugin 工作流配置实战
2026年8月更新:Codex CLI 接入 TaoToken 统一 Key,GPT-5.6 Agent Plugin 工作流配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 13:39:29

Trae、Cursor生成式AI,Builder智能体体验报告:TaoToken统一Key接入配置实战
Trae、Cursor生成式AI,Builder智能体体验报告:TaoToken统一Key接入配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 13:39:23

AI 编程简历总卡在“交付”?用 TaoToken 统一 Key 打通权限与日志闭环
AI 编程简历总卡在“交付”?用 TaoToken 统一 Key 打通权限与日志闭环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 13:39:16

【开源】2 分钟在 Windows 上搭建 AI Agent 运行环境:MachineY Engine 使用指南(TaoToken 配置篇)
【开源】2 分钟在 Windows 上搭建 AI Agent 运行环境:MachineY Engine 使用指南(TaoToken 配置篇)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 13:39:16

洛谷P1125笨小猴:Python字符串统计与质数判断的边界陷阱
洛谷P1125笨小猴:Python字符串统计与质数判断的边界陷阱

做洛谷P1125这道题的时候,我第一反应是“这不就是个字符串统计加质数判断嘛”,结果第一次提交就被WA打脸了。问题出在minn的取值上——我用了长度为26的数组统计每个字母出现次数,然后直接对整组数求最小值,完全没想过那些没出现过… · 2026/9/26 13:39:10

Spring Boot @Retryable与@Recover实战:优雅实现重试与降级
Spring Boot @Retryable与@Recover实战:优雅实现重试与降级

1. 重试机制到底解决了什么问题 1.1 远程调用失败的常态与痛点 做后端开发的朋友应该都遇到过这种场景:调用第三方接口超时、数据库连接池暂时被占满、外部服务临时抖动返回500。这些状况在分布式系统里不是“会不会出现”的问题,而是“多久出现一次”的… · 2026/9/26 13:39:10

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码