LeetCode刷题笔记第206:反转链表
想法:
目标是为了将链表反转,创建两个指针,分别为新链表与原链表,遍历原链表,在遍历的同时将其中的元素一个个反向,最终得到原链表的反向。
# 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: ListNode) -> ListNode:
# 设置两个指针,prev为新链表的指针,curr为原列链表的指针
prev, curr = None, head
# 对原链表进行循环,并结合新指针对其反向
while curr is not None:
# 用next存放curr下一个位置
next = curr.next
# 将当前的curr指向prev,完成当前元素的反向
curr.next = prev
# 将curr传递给prev,curr的下一个位置传递给当前位置,使得进行下一步操作(下一个元素的反向)
prev = curr
curr = next
return prev