LeetCode热题100-反转链表

python3实现

  • 循环方法:设置双指针,空间复杂度1,时间复杂度n
python 复制代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        cur, pre = head, None
        while cur:
            tmp = cur.next
            cur.next = pre
            pre = cur
            cur = tmp
        return pre

这里返回的pre,因为结束循环的条件为cur为空,当cur为空时,pre正好为表头。

  • 递归:注意递归设置的条件,第一次返回的表头
python 复制代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        def recur(cur, pre):
            if not cur:
                return pre
            res = recur(cur.next, cur)
            cur.next = pre
            return res
        
        return recur(head, None)
相关推荐
蚰蜒螟22 分钟前
从内核启动到 Java NIO:一次 socket accept 的源码串联之旅
java·python·nio
高洁011 小时前
AI赋能产业升级与中美未来经济赛道博弈
人工智能·python·深度学习·机器学习·transformer
夜晚回家1 小时前
Python 原始字符串详解 | r 前缀到底让什么不再转义
开发语言·python
用户019027581611 小时前
如何用 Python 计算 EMV 简易波动指标?
python
第25小时记录1 小时前
[2026] Linux安装教程
运维·python
前端 贾公子3 小时前
LangGraph == 图的状态(State)管理 (中)
开发语言·数据库·python
the局外人4 小时前
FastAPI中jwt的基本使用与实践
后端·python·fastapi
mklpo1474 小时前
为不支持sse4.2命令集的老旧设备制作Win11 26H2系统镜像,2026-10-11。
运维·windows·python
GoldenSpider.AI4 小时前
用 AI 改流程之前先做「四桶」体检:9 次返工里 8 次靠规则就能消掉(附 Python 发布前校验器)
人工智能·python·自动化·ai智能体