您的位置:首页 > 其它

leetcode-82. Remove Duplicates from Sorted List II(删除有序列表中所有重复元素一个不留)

2017-05-24 22:27 330 查看
https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/#/description

问题描述:重复的元素全都删除,一个不留。

思路解析:设立两个指针,一个滑动指向重复元素最后一个。当两个元素相连则同时向后滑动,否则相连。

代码如下:

/**
* Definition for singly-linked list.
* public class ListNode {
*     int val;
*     ListNode next;
*     ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode k=new ListNode(0);
k.next=head;
ListNode p=k;
ListNode f=head;

while(f!=null)
{
while(f.next!=null && f.val==f.next.val )
{
f=f.next;//f指向重复值的最后一个元素
}

if(p.next==f){
p=p.next;//如果前后连个相连,说明是不重复的元素相连,将指针后移
}else
{
p.next=f.next;
}
f=f.next;

}
return k.next;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode
相关文章推荐