leetcode 206 反转链表

思路

原题链接

  1. 使用双指针的方法
  2. 定义pre 和 cur 和一个tmp指针
  3. 具体操作步骤如下:
    首先,将pre和tmp都指向null,让cur指向head
    leetcode 206 反转链表
    之后,使用tmp来保存cur.next 即来保存cur的下一个节点
    leetcode 206 反转链表
    然后,让cur.next 指向pre 即 cur.next=pre
    leetcode 206 反转链表
    之后,让pre 指向 cur 即 pre = cur 最后,让 cur 指向 tmp,即cur = tmp
    leetcode 206 反转链表
    之后,就是循环执行此过程…
    leetcode 206 反转链表
  class Solution {
	public ListNode reverseList(ListNode head) {
        ListNode pre = null;
        ListNode tmp = null;
        ListNode cur = head;
        while(cur != null){
            tmp = cur.next;
            cur.next = pre;
            pre = cur;
            cur = tmp;
        }
        return pre;
	}
}

注:动画来源代码随想录

上一篇:「题解」删除链表的倒数第 N 个结点


下一篇:Leedcode 链表两数相加 Python包含反思过程