题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def ReverseList(self , head: ListNode) -> ListNode:
if head is None:
return head
per = None
cur = head
while cur:
next = cur.next
cur.next = per
per = cur
cur = next
return per
首先我们先判断head节点是否为空,为空则直接返回head节点
链表若不为空值,我们定义一个per指向当前节点的上一个节点,cur指向现在的节点。
若当前节点存在,我们先保存当前节点的下一个节点,将当前指针的下一个节点改为指向它的前置节点,之后移动前置节点和当前节点的指针位置。
当cur节点为空时,结束循环,返回整个链表
#刷题心得#
查看15道真题和解析