前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >问题系列之Java中删除有序List的重复数据——提供两种方法

问题系列之Java中删除有序List的重复数据——提供两种方法

作者头像
用户1289394
发布2018-02-27 15:03:31
7440
发布2018-02-27 15:03:31
举报
文章被收录于专栏:Java学习网Java学习网

Java学习网(www.javalearns.com)提拱

现在给出一个有序的List,删除其中重复的元素,要求第个元素只能出现一次,并且是经过的排序的;

网络配图

比如:

给出 2->2->3,返回 2->3;

给出 2->2->3->5->5,返回 2->3->5;

要解决这个问题,首先要分析问题,找出问题的关键因素;经过分析我们可以知道要实现这个需求,必须使用循环语句配合正确的条件。下面提供了2种解决方案:

先定义一个基础类(2个方法都用到此类):

代码语言:js
复制
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}

方法一、

代码语言:js
复制
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null)
return head;
ListNode prev = head;
ListNode p = head.next;
while (p != null) {
if (p.val == prev.val) {
prev.next = p.next;
p = p.next;
prev = p;
p = p.next;
}
}
return head;
}

}

网络配图

方法二、

代码语言:js
复制
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null)
return head;
ListNode p = head;
while (p != null && p.next != null) {
if (p.val == p.next.val) {
p.next = p.next.next;
} else {
p = p.next;
}
}
return head;
}
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档