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)
相关推荐
卷无止境7 分钟前
FastAPI 的 CI/CD 之路,从代码提交到线上运行
后端·python·fastapi
2601_962382438 分钟前
系统学习Python——单元测试unittest:执行测试用例(unit test python)
python·测试用例·测试框架·unittest·测试集合
小玮看世界16 分钟前
[Python]动态规划三步走:从爬楼梯到打家劫舍,再到最大子数组和
开发语言·python·动态规划
风萧萧199923 分钟前
JAVA :JSONObject转换为XML
xml·java·python
海拥✘25 分钟前
网页抓取 API 稳定性怎么测?用 Dataify 完成一次真实压测
python
databook26 分钟前
几何分布:从“等一个结果”开始
python·数据挖掘·数据分析
用户03321266636740 分钟前
如何在 Python 环境中裁剪 PDF 页面
python
威联通网络存储43 分钟前
TS-h2287XU-RP 在医药制造批记录与合规归档场景的部署
python·制造
蓝鸟19741 小时前
Python Flask + Oracle 接口开发 小白完整版笔记(入参/查库/批量/JSON/避坑)
python·oracle·flask
Navigator_Z1 小时前
LeetCode //C - 1223. Dice Roll Simulation
c语言·算法·leetcode