【LeetCode】每日一题:反转链表

题解思路

循环的方法需要注意prev应该是None开始,然后到结束的时候prev是tail,递归的思路很难绕过弯来,主要在于很难想清楚为什么可以返回尾节点,需要多做递归题,以及递归过程中,可以不使用尾节点来找当前递归位置,用head结点即可,多用边界情况推理。

AC代码

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]:
        # if not head or head.next is None:
        #     return head
        # newhead = self.reverseList(head.next)
        # head.next.next = head
        # head.next = None
        # return newhead

        prev = None
        curr = head
        while curr:
            temp = curr.next
            curr.next = prev
            prev = curr
            curr = temp
        return prev
相关推荐
逝雪Yuki1 分钟前
P4017 最大食物链计数
c++·算法·动态规划·拓扑排序·洛谷
深蓝电商API4 分钟前
旅游网站景点评论情感分析
爬虫·python
程序员小明儿10 分钟前
量子计算探秘:从零开始的量子编程与算法之旅 · 第四篇
算法·量子计算
生命不息战斗不止(王子晗)10 分钟前
mysql索引面试专题
面试·职场和发展
程序员小明儿12 分钟前
量子计算探秘:从零开始的量子编程与算法之旅 · 第一篇
算法·量子计算
不想看见40413 分钟前
Add Strings数字处理--力扣101算法题解笔记
数据结构·算法·leetcode
云泽80816 分钟前
C++ STL set 容器全解析:从基础用法、算法实践到云同步实战
开发语言·c++·算法
absunique32 分钟前
复杂度分析中的常数优化与性能重构的技术6
算法·重构
运维老王33 分钟前
运维人如何用 Python 自动化提升 10 倍效率
python
初次攀爬者35 分钟前
力扣解题-74. 搜索二维矩阵
算法·leetcode