当前位置: 首页 > 后端技术 > Python

LeetCode反向链表

时间:2023-03-25 21:13:18 Python

反向链表题目来源:https://leetcode-cn.com/problems/reverse-linked-list/题目:反转单链表。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL解题思路的迭代。使用双指针;定义两个指针,一个pre指向None,一个cur指向链表的头部;遍历链表,将当前节点的next指针指向pre,同时pre和cur指针都前移一位(这里注意元素保留)当cur为None时,迭代完成,pre此时指向链表的头部,返回。代码实现#单向链表的定义。#classListNode:#def__init__(self,x):#self.val=x#self.next=Noneclass解决方案:defreverseList(self,head:ListNode)->ListNode:'''反向链表args:head:linkedlistreturns:return反向链表'''#定义两个指针#pre指向None,cur指向原链表的头部pre=Nonecur=head#cur为None,迭代结束whilecur:#这里注意引用变化,节点的存储#下面的代码相当于#存储节点值#tmp=cur。#cur=tmpcur.next,pre,cur=pre,cur,cur.next#返回反向链表returnpre实现效果以上就是LeetCode题目的解题过程和结果《反转链表》。欢迎关注微信公众号《书所集录》