【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
相关推荐
YMLT花岗岩几秒前
Python学习之-函数-入门训练-在函数中修改全局变量
python·学习
TracyCoder1232 分钟前
LeetCode Hot100(3/100)——128.最长连续序列
算法·leetcode
花月mmc6 分钟前
CanMV K230 波形识别——数据分析(2)
python·数据挖掘·数据分析·信号处理
Piar1231sdafa23 分钟前
【目标检测】竹林与杂草识别_YOLOv26改进算法研究
算法·yolo·目标检测
风筝在晴天搁浅27 分钟前
hot100 543.二叉树的直径
算法·深度优先
风筝在晴天搁浅29 分钟前
hot100 102.二叉树的层序遍历
java·算法
张祥64228890432 分钟前
误差理论与测量平差基础笔记八
笔记·算法·机器学习
进击的小头33 分钟前
传递函数与系统特性(核心数学工具)
python·算法·数学建模
清酒难咽33 分钟前
算法案例之回溯法
c++·经验分享·算法
程序员-King.33 分钟前
day168—递归—二叉树的最大路径和(LeetCode-124)
算法·leetcode·深度优先·递归