输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
输入:head = [1,2]
输出:[2,1]
思路:双指针
先定义两个指针,一个是头结点,一个是空节点
🌰:head = 1->2->3->4->5->null, output = 5->4->3->2->1->null
原本是尾结点->null, 现在要把头节点变成尾节点->null。
# 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: Optional[ListNode]) -> Optional[ListNode]:
cur = head
pre = None
while cur is not None:
temp = cur.next
cur.next = pre
pre = cur
cur = temp
return pre