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

devtools/2025/1/17 5:11:20/

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 = valthis.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 = headwhile (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 = headwhile (cur.next) {if (cur.val===cur.next.val) {cur.next=cur.next.next}else{cur = cur.next}}return head}

    


http://www.ppmy.cn/devtools/151181.html

相关文章

Spring 中的常用注解

Spring 作为 Java 企业级开发中最广泛使用的框架之一&#xff0c;以其强大的功能和灵活性为开发者提供了高效的开发体验。在 Spring 中&#xff0c;注解&#xff08;Annotation&#xff09;是其核心机制之一&#xff0c;它简化了配置文件的繁琐操作&#xff0c;通过声明的方式实…

ros2-6.4.4 两轮差速控制机器人的问题

遇到一个问题。本节开始尝试在gazebo中仿真上一节构建的模型。 先贴一下现象&#xff0c;启动launch之后&#xff0c;gazebo显示正常移动。但是在rviz中查看就是有问题的&#xff1a; fixedframe:选择odom.显示添加机器人&#xff0c;按topic 选择。提示&#xff1a; no tra…

CNCF云原生计算基金会

CNCF&#xff0c;全称为云原生计算基金会&#xff08;Cloud Native Computing Foundation&#xff09;&#xff0c;成立于2015年&#xff0c;是一个隶属于Linux基金会的非营利组织。CNCF旨在促进和支持开源技术的发展&#xff0c;特别是那些支持云原生&#xff08;cloud native…

高斯数据库 Shell 脚本:批量执行 SQL 文件

高斯数据库 Shell 脚本&#xff1a;批量执行 SQL 文件 优化后的高斯数据库 Shell 脚本 #!/bin/bash# 数据库信息文件路径 DB_INFO_FILE"db_info.txt"# 要执行的 SQL 文件 SQL_FILE"create_table.sql"# 检查数据库信息文件是否存在 if [[ ! -f "$DB_…

ubuntu Android : adb logcat 过滤多个log

指定字符串的log&#xff0c;可以用下面的形式&#xff0c;注意加-E和单引号&#xff1a; adb shell " logcat | grep -E strings1|strings2 " 参考&#xff1a;Android : adb logcat 过滤多个log 用adb shell “ logcat | grep -E ‘strings1| strings2 ‘ “ 形…

【React】新建React项目

目录 create-react-app基础运用React核心依赖React 核心思想&#xff1a;数据驱动React 采用 MVC体系package.jsonindex.html好书推荐 官方提供了快速构建React 项目的脚手架&#xff1a; create-react-app &#xff0c;目前使用它安装默认是19版本&#xff0c;我们这里降为18…

Redis雪崩以及解决方法

概述&#xff1a; Redis中大量缓存数据在同一时间过期&#xff08;失效&#xff09;或者Redis故障宕机时&#xff0c;如果此时有大量的用户请求&#xff0c;都无法在Redis中处理&#xff0c;于是全部请求都直接访问数据库&#xff0c;从而导致数据库的压力骤增&#xff0c;严重…

构建高效的进程池:深入解析C++实现

构建高效的进程池&#xff1a;深入解析C实现 在高性能计算和服务器应用中&#xff0c;进程池&#xff08;Process Pool&#xff09;是一种重要的设计模式。它通过预先创建和维护一定数量的子进程来处理大量的任务请求&#xff0c;从而避免频繁地创建和销毁进程带来的开销。本文…