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;
};
复制代码

题目反思

  • 学会使用双指针来解决反转链表问题。
  • 本题尤其值的我们反复练习,因为本题在修改指针的指向的时候,需要保存当前指针的下一个节点,这是解决反转链表的一个很好的思路。
相关文章
|
5天前
题目----力扣--回文链表
题目----力扣--回文链表
11 0
|
5天前
题目----力扣--合并两个有序链表
题目----力扣--合并两个有序链表
8 0
|
5天前
题目----力扣--反转链表
题目----力扣--反转链表
13 0
|
5天前
题目----力扣--链表的中间结点
题目----力扣--链表的中间结点
6 0
|
5天前
题目----力扣--移除链表元素
题目----力扣--移除链表元素
12 1
|
5天前
|
算法
"刷题记录:哈希表+双指针 | leetcode-2465. 不同的平均值数目 "
该文段是一篇关于编程题目的解答,主要讨论如何找到数组中所有不同平均值的个数。作者首先使用排序和哈希集来解决,将数组转为列表排序后,通过双指针计算平均值并存入哈希集以去重。然后,作者发现可以优化方案,通过双指针在排序后的数组中直接计算两数之和,用哈希集记录不重复的和,从而避免实际计算平均值,提高了算法效率。最终代码展示了这两种方法。
14 0
|
6天前
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点.
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点
14 1
|
6天前
|
索引
【力扣刷题】两数求和、移动零、相交链表、反转链表
【力扣刷题】两数求和、移动零、相交链表、反转链表
15 2
【力扣刷题】两数求和、移动零、相交链表、反转链表
|
6天前
|
索引
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
12 0
|
6天前
|
存储 算法 索引
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
16 1