如何使用java删除排序链表中的重复元素
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章将为大家详细讲解有关如何使用java删除排序链表中的重复元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。给定一个排序链表,删除所有含有重复数字的节点,只保
千家信息网最后更新 2025年12月04日如何使用java删除排序链表中的重复元素
这篇文章将为大家详细讲解有关如何使用java删除排序链表中的重复元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
答案:
1public ListNode deleteDuplicates1(ListNode head) {
2 if (head == null) return null;
3 ListNode FakeHead = new ListNode(0);
4 FakeHead.next = head;
5 ListNode pre = FakeHead;
6 ListNode cur = head;
7 while (cur != null) {
8 while (cur.next != null && cur.val == cur.next.val) {
9 cur = cur.next;
10 }
11 if (pre.next == cur) {
12 pre = pre.next;
13 } else {
14 pre.next = cur.next;
15 }
16 cur = cur.next;
17 }
18 return FakeHead.next;
19}
解析:
因为是排序,这就好办了,如果前节点和下一个节点相同的时候,在删除下一个节点的时候要保证当前节点也要被删除掉。这题不是很难,解法也比较多,下面再来看一个递归的解法
1public ListNode deleteDuplicates2(ListNode head) {
2 if (head == null || head.next == null) return head;
3 if (head.val != head.next.val) {
4 head.next = deleteDuplicates2(head.next);
5 return head;
6 } else {
7 while (head.next != null && head.val == head.next.val)
8 head = head.next;
9 return deleteDuplicates2(head.next);
10 }
11}
这种递归的方式上一种更简洁,理解起来页稍微让一些。
Java的特点有哪些
Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
关于"如何使用java删除排序链表中的重复元素"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
节点
排序
程序
对象
应用程序
特点
篇文章
应用
元素
分布式
数字
方式
时候
更多
示例
系统
解法
语言
递归
编程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器氪金
dazy服务器人数
亲爱的里面网络安全大赛
易企秀可以做数据库吗
sql2008数据库建表
非关系型数据库完整性好吗
远图互联网科技 java
jsp数据库随机取出数据
服务器来到怎么跳
评论区的数据库表
网络安全找工作好找不
电子软件开发的名称
浙江软件开发过程标准
exchange服务器过滤邮件
对日软件开发营业
无盘服务器自动下载游戏
网络营销首先考虑网络技术
论网络安全面对的风险挑战
惠普服务器 紫光
温州亿星互联网科技怎么样
时序数据库配置要求
网络数据库
扬州常规软件开发
数据库上课完全没听
校时服务器售价
我的世界史蒂夫服务器
我的世界钻石商店服务器
江津区易推网络技术中心
steam软件开发
宜源互联网科技有限公司怎么样