算法3(力扣83)-删除链表中的重复元素

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

2、实现( 因为已排序,所以元素若重复,必然在其下一位)(这里为在vscode上看见实现效果,直接使用具名函数)

(1)定义链表结构

(2)定义头结点

(3)分两种情况

1)链表为空链表(直接返回)
2)链表非空(相等删除,不等指针下移一位)

(4)调用

3、完整代码

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>删除链表中的重复元素</title>
</head>
<body>
    <p>
        给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
    </p>
    <p>
        输入:head = [1,1,2]
        输出:[1,2]
    </p>
    <p>
        输入:head = [1,1,2,3,3]
        输出:[1,2,3]
    </p>
</body>
<script>
    class ListNode{
            constructor(val, next){
            this.val = val
            this.next = next
        } 
    }
    let head = new ListNode(1)
        head.next = new ListNode(1)
        head.next.next = new ListNode(2)

    deleteDuplicates(head)
    function deleteDuplicates(head) {
            // 头结点为空,直接返回
            if (!head) return head;
            // 头结点非空时,让当前指针指向head,在循环中判断,当循环中一个节点的值和该节点下一节点的值相等时,删除;否则,指针移向下一位
            let cur = head
            while (cur.next) {
                if (cur.val === cur.next.val) {
                    cur.next = cur.next.next
                } else {
                    cur = cur.next
                }
            }
            console.log(head);
            
            return head

        }    




</script>
</html>

4、力扣使用代码

javascript 复制代码
    var deleteDuplicates = function (head) {
        // 头结点为空,直接返回
        if(!head) return head;
        // 头结点非空时,让当前指针指向head,在循环中判断,当循环中一个节点的值和该节点下一节点的值相等时,删除;否则,指针移向下一位
        let cur = head
        while (cur.next) {
            if (cur.val===cur.next.val) {
                cur.next=cur.next.next
            }else{
                cur = cur.next
            }
        }
        return head
        
    }
相关推荐
qeen874 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
图码4 小时前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
我星期八休息4 小时前
IT疑难杂症诊疗室:AI时代工程师Superpowers进化论
linux·开发语言·数据结构·人工智能·python·散列表
漂流瓶jz4 小时前
UVA-1152 和为0的4个值 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·二分查找·题解·aoapc·算法竞赛入门经典·uva
你撅嘴真丑5 小时前
map 与 set容器的应用--话题焦点人物
数据结构
生成论实验室5 小时前
《事件关系阴阳博弈动力学:识势应势之道》第二篇:阴阳博弈——认知的动力学基础
数据结构·人工智能·科技·神经网络·算法
li1670902705 小时前
第二十七章:智能指针
c语言·数据结构·c++·visual studio
代码中介商8 小时前
数据结构开篇:从问题到解决方案
数据结构
AKDreamer_HeXY8 小时前
QOJ 12255 - 36 Puzzle 题解
数据结构·c++·数学·算法·icpc·qoj
Rabitebla9 小时前
vector 的骨架:三根指针、模板陷阱与迭代器失效的第一现场
开发语言·数据结构·c++·算法