【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
相关推荐
BlockChain888几秒前
Web3 后端面试专用版
java·面试·职场和发展·go·web3
刘某某.几秒前
大模型数据传输3 种方式对比
算法
weixin_462446233 分钟前
Python用Flask后端解析Excel图表,Vue3+ECharts前端动态还原(附全套代码)
前端·python·flask·echats
wen__xvn6 分钟前
基础算法集训第03天:递推
算法
偷星星的贼1110 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
秋刀鱼程序编程10 分钟前
Java基础入门(七)---异常处理
java·开发语言·python
wen__xvn11 分钟前
算法基础集训第19天:广度优先搜索
算法·宽度优先
二十雨辰13 分钟前
[python]-基础语法
python
小白学大数据13 分钟前
基于 Python 的知网文献批量采集与可视化分析
开发语言·爬虫·python·小程序
Ulyanov14 分钟前
PyVista战场可视化实战(一):构建3D战场环境的基础
开发语言·python·3d·tkinter·gui开发