题解 | #反转链表#
反转链表
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节点为空时,结束循环,返回整个链表
#刷题心得#