定义三个指针:
1)保存下一个节点
2)当前节点指向上一个节点
3)移动指针
循环
题意:反转一个单链表。
示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL
3)移动指针
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head: ListNode) -> ListNode:
# 初始化三个指针
prev = None # 前一个节点
curr = head # 当前节点
next_node = None # 下一个节点
# 遍历链表,将每个节点的 next 指向它的前驱节点
while curr is not None:
next_node = curr.next # 保存下一个节点
curr.next = prev # 当前节点指向上一个节点
prev = curr # 移动指针
curr = next_node # 移动指针
return prev # 返回反转后的头节点