迭代解法:使用双指针

  1. 遍历链表,指针 cur 指向当前节点,指针 pre 指向 cur 的前驱节点
  2. 初始化 pre 和 cur
  3. temp 存储 cur 的后继节点
  4. 反转操作,cur 的后继变为前驱
  5. 更新 pre 和 cur,直到 cur 指向空

class Solution:
    def reverseList(self, head: ListNode) -> ListNode:
        pre, cur = None, head
        while cur:
            temp = cur.next
            cur.next = pre
            pre, cur = cur, temp
        return pre