【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
相关推荐
星火开发设计1 分钟前
共用体 union:节省内存的特殊数据类型
java·开发语言·数据库·c++·算法·内存
求梦82013 分钟前
【力扣hot100题】合并两个有序链表(22)
算法·leetcode·链表
b20772117 分钟前
Flutter for OpenHarmony 身体健康状况记录App实战 - 提醒设置实现
python·flutter·macos·cocoa·harmonyos
2301_8223650322 分钟前
数据分析与科学计算
jvm·数据库·python
河北小博博24 分钟前
分布式系统稳定性基石:熔断与限流的深度解析(附Python实战)
java·开发语言·python
dcmfxvr26 分钟前
adwawd
算法
黄连升27 分钟前
Python学习第二天,系统学习基础
python·学习
西红市杰出青年33 分钟前
CSS 选择器详细教程:原理、语法、方向/“轴”与实战
css·python
tudficdew34 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
踩坑记录34 分钟前
leetcode hot100 21.合并两个有序链表 链表 easy
leetcode