当前位置: 首页 > article >正文

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

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

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

(1)定义链表结构

        

(2)定义头结点

        

(3)分两种情况

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

(4)调用

3、完整代码

<!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、力扣使用代码

    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
        
    }

    


http://www.kler.cn/a/505907.html

相关文章:

  • pytorch小记(一):pytorch矩阵乘法:torch.matmul(x, y)
  • PHP 使用 Redis
  • [手机Linux] ubuntu 错误解决
  • uni-app的学习
  • 1Hive概览
  • Android SystemUI——使用Dagger2加载组件(四)
  • 金融数据下载
  • 启动项目报JVM初始化错误
  • United States of America三种表示
  • C++单例模式的设计
  • Tidb集群升级到8.5.0过程中服务器遇到的坑
  • rtthread学习笔记系列--32 ULOG
  • 数据结构与算法之链表: LeetCode 146. LRU 缓存 (Ts版)
  • 赛灵思(Xilinx)公司Artix-7系列FPGA
  • HP_SNMP - ilo4服务器监控指标解读
  • 数据可视化如何推动文旅行业的创新与发展
  • HTML中如何保留字符串的空白符和换行符号的效果
  • 关于SQL注入的面试题及经验分享(附视频教程)
  • 【刷题】【力扣】【178】【中等】分数排名
  • C# 25Dpoint
  • STC的51单片机LED点灯基于KEIL
  • zig语言初探:来写贪吃蛇游戏
  • 深入详解人工智能语音识别之声学模型与语言模型:掌握HMM、CTC等方法
  • 【开源免费】基于SpringBoot+Vue.JS社团管理系统(JAVA毕业设计)
  • 第十二章:算法与程序设计
  • Spring Boot 下的Swagger 3.0 与 Swagger 2.0 的详细对比