206. 反转链表

传送门

代码

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode cur = head,pre = null;
        while(cur != null) {
            ListNode tmp = cur.next;
            cur.next = pre;
            pre = cur;
            cur = tmp;
        }
        return pre;
    }
}

思路

cur 代表当前节点,pre代表上一个节点
主要思想就是把 cur 的 next 指针指向 pre 即可
然后依次向后移动 cur 和 pre 使,cur 到原链表的下一个节点,pre 到刚才 cur 所指向的位置
因为这个移动的过程,必须要保存原链表的节点,否则 cur next 指向前面的 pre 之后,原链表丢失
所以必须要一个 tmp 节点,用来保存原链表的结构

原文地址:https://www.cnblogs.com/lukelmouse/p/14128421.html