【学透链表-反转链表】

示例:

【学透链表-反转链表】
思路:
  利用两个指针,第一个指针叫 pre,最初是指向 null。
  第二个指针 cur 指向 head,然后不断遍历 cur。
  每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 后移一位。
  都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。

代码实现:

class Solution {
    public ListNode reverseList(ListNode head) {
        if(head == null){
            return null;
        }
		//定义节点,pre和 cur,pre指向null
        ListNode pre = null;
        ListNode cur = head;
        while(cur != null){
			//记录当前节点的下一个节点,用于后移
            ListNode next = cur.next;
			//然后将当前节点指向pre
            cur.next = pre;
			//pre和cur节点都后移一位
            pre = cur;
            cur = next;
        }
        return pre;
    }
}
上一篇:链表排序 python 力扣148


下一篇:删除链表的倒数第N个结点(双指针法)