删除链表中的重复元素II
2017-06-07 16:38
281 查看
给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。
样例
给出 1->2->3->3->4->4->5->null,返回 1->2->5->null
给出 1->1->1->2->3->null,返回 2->3->null
import java.util.Scanner;
/**
* 给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。
样例
给出 1->2->3->3->4->4->5->null,返回 1->2->5->null
给出 1->1->1->2->3->null,返回 2->3->null
*
* @author Dell
*
*/
public class Test113 {
public static ListNode deleteDuplicates(ListNode head)
{
if(head==null||head.next==null||head.next.next==null)
return head;
ListNode q=head;
ListNode r=q.next;
ListNode p=r.next;
while(p!=null)
{
int temp=r.val;
boolean flag=false;
while(p!=null&&p.val==r.val)
{
p=p.next;
flag=true;
}
if(flag==true)
q.next=p;
else
q=q.next;
r=p;
if(p!=null)
p=p.next;
}
return head;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
ListNode list=new ListNode(-1);
ListNode p=list;
for(int i=0;i<n;i++)
{
ListNode temp=new ListNode(sc.nextInt());
p.next=temp;
p=p.next;
}
ListNode result=deleteDuplicates(list);
ListNode q=result.next;
while(q!=null)
{
System.out.print(q.val+" ");
q=q.next;
}
}
}
样例
给出 1->2->3->3->4->4->5->null,返回 1->2->5->null
给出 1->1->1->2->3->null,返回 2->3->null
import java.util.Scanner;
/**
* 给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。
样例
给出 1->2->3->3->4->4->5->null,返回 1->2->5->null
给出 1->1->1->2->3->null,返回 2->3->null
*
* @author Dell
*
*/
public class Test113 {
public static ListNode deleteDuplicates(ListNode head)
{
if(head==null||head.next==null||head.next.next==null)
return head;
ListNode q=head;
ListNode r=q.next;
ListNode p=r.next;
while(p!=null)
{
int temp=r.val;
boolean flag=false;
while(p!=null&&p.val==r.val)
{
p=p.next;
flag=true;
}
if(flag==true)
q.next=p;
else
q=q.next;
r=p;
if(p!=null)
p=p.next;
}
return head;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
ListNode list=new ListNode(-1);
ListNode p=list;
for(int i=0;i<n;i++)
{
ListNode temp=new ListNode(sc.nextInt());
p.next=temp;
p=p.next;
}
ListNode result=deleteDuplicates(list);
ListNode q=result.next;
while(q!=null)
{
System.out.print(q.val+" ");
q=q.next;
}
}
}
相关文章推荐
- 排序链表中删除重复元素II
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- (Java) LeetCode 82. Remove Duplicates from Sorted List II —— 删除排序链表中的重复元素 II
- Leetcode Remove Duplicates from Sorted List II 删除链表中重复的元素II
- python_lintcode_115不同的路径 II_112删除排序链表中的重复元素
- 删除链表中重复的元素
- Leetcode 删除重复的链表元素
- 删除有序链表的重复元素 Remove Duplicates from Sorted List
- sdut 数据结构实验之链表七:单链表中重复元素的删除
- 山东理工OJ【2122】数据结构实验之链表七:单链表中重复元素的删除(两种思想)
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- Remove Duplicates from Sorted List 删除链表中的重复元素,保留一次
- 数据结构--删除单链表中重复元素
- 数据结构实验之链表七:单链表中重复元素的删除 (SDUT 2122)
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 2.1 链表重复元素(删除)
- 删除链表中的重复元素
- 寒假第二天--线性表--数据结构实验之链表七:单链表中重复元素的删除