跳到主要内容

反转链表

ListNode *reverse(ListNode *head) {
ListNode *cur = head;
ListNode *pre = nullptr;
while (cur != nullptr) {
ListNode *tmp = cur->next; // 暂存后继节点 cur.next
cur->next = pre; // 修改 next 引用指向
pre = cur; // pre 暂存 cur
cur = tmp; // cur 访问下一节点
}
return pre;
}

口诀

预设两指针,cur指向当前,pre指向上一个。 当cur不等于nullptr时,做循环。

  1. 保存下地址
  2. 切换链方向
  3. 移动前后针
Loading Comments...