LeetCode删除排序链表中的重复元素的问题使用JavaScript解题|前端学算法

简介: LeetCode删除排序链表中的重复元素的问题使用JavaScript解题|前端学算法

删除排序链表中的重复元素


给定一个已排序的链表的头 head删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表


image.png


示例 1:

输入: head = [1,1,2]

输出: [1,2]


image.png


示例2:

输入: head = [1,1,2,3,3]

输出: [1,2,3]


解题思路


我们可以初始化一个节点,作为当前节点,用这个节点与下一个节点比较是否相同;如果相同,就令当前节点指向下下一个节点;如果不同就令当前节点指向下一个节点


image.png


具体步骤如下:

  • 第一步:初试话当前节点等于head
  • 第二步: 当当前节点存在且下一个节点存在则进入循环
  • 判断当前值与下一个节点的值是否相同
  • 相同使当前节点指向下下一个节点
  • 不同就让当前节点指向下一个节点
  • 第三步: 返回head
var deleteDuplicates = function(head) {
    let current = head
     while(current && current.next) {
        if(current.val == current.next.val) {
            current.next = current.next.next;
        } else {
            current = current.next;
        }
    }
    return head;
};


image.png


知识点


  • 链表和数组相似,它们都是有序的列表、都是线性结构(有且仅有一个前驱、有且仅有一个后继)。不同点在于,链表中,数据单位的名称叫做“结点”,而结点和结点的分布,在内存中可以是离散的。


image.png


关于链表的一些简单操作和基础知识大家可以看这一片文章:栈,队列和链表三者之间的关系与区别


目录
相关文章
|
11月前
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
124 1
|
5月前
|
机器学习/深度学习 存储 算法
【LeetCode 热题100】347:前 K 个高频元素(详细解析)(Go语言版)
这篇文章详细解析了力扣热题 347——前 K 个高频元素的三种解法:哈希表+小顶堆、哈希表+快速排序和哈希表+桶排序。每种方法都附有清晰的思路讲解和 Go 语言代码实现。小顶堆方法时间复杂度为 O(n log k),适合处理大规模数据;快速排序方法时间复杂度为 O(n log n),适用于数据量较小的场景;桶排序方法在特定条件下能达到线性时间复杂度 O(n)。文章通过对比分析,帮助读者根据实际需求选择最优解法,并提供了完整的代码示例,是一篇非常实用的算法学习资料。
343 90
|
11月前
【LeetCode 27】347.前k个高频元素
【LeetCode 27】347.前k个高频元素
105 0
|
存储 算法
LeetCode第83题删除排序链表中的重复元素
文章介绍了LeetCode第83题"删除排序链表中的重复元素"的解法,使用双指针技术在原链表上原地删除重复元素,提供了一种时间和空间效率都较高的解决方案。
LeetCode第83题删除排序链表中的重复元素
|
11月前
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
126 0
|
11月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
122 0
|
11月前
【LeetCode 06】203.移除链表元素
【LeetCode 06】203.移除链表元素
84 0
|
11月前
【LeetCode-每日一题】移除元素
【LeetCode-每日一题】移除元素
83 0
|
6天前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
7天前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。