LeetCode——反转链表(双指针)

简介: LeetCode——反转链表(双指针)

题目描述

image.png

解题思路

  1. 采用一个指针指向当前节点,cur节点的初始值为head.
  2. 采用另一个指针指向当前节点的前一个节点(pre),该节点的初始值为null.
  3. 每当我们修改当前指针的指向的时候,一定要保存当前指针的后一个节点.

解题代码

var reverseList = function(head) {
    let cur = head;
    let pre = null;
    while (cur) {
        // 首先保存当前节点的下一个节点
        let temp = cur.next;
        cur.next = pre;
        pre = cur;
        cur = temp;
    }
    return pre;
};
复制代码

题目反思

  • 学会使用双指针来解决反转链表问题。
  • 本题尤其值的我们反复练习,因为本题在修改指针的指向的时候,需要保存当前指针的下一个节点,这是解决反转链表的一个很好的思路。
相关文章
|
4天前
LeetCode链表hard 有思路?但写不出来?
LeetCode链表hard 有思路?但写不出来?
|
4天前
|
索引
LeetCode438题(无敌双指针——滑动窗口)
LeetCode438题(无敌双指针——滑动窗口)
|
4天前
|
索引
每日一题:力扣328. 奇偶链表
每日一题:力扣328. 奇偶链表
14 4
|
4天前
leetcode代码记录(移除链表元素
leetcode代码记录(移除链表元素
10 0
【每日一题】LeetCode——反转链表
【每日一题】LeetCode——反转链表
【每日一题】LeetCode——链表的中间结点
【每日一题】LeetCode——链表的中间结点
|
4天前
|
C++
[leetcode 链表] 反转链表 vs 链表相交
[leetcode 链表] 反转链表 vs 链表相交
|
4天前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
4天前
|
存储
LeetCode刷题---817. 链表组件(哈希表)
LeetCode刷题---817. 链表组件(哈希表)
|
4天前
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解

热门文章

最新文章