题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
-
-
-
-
-
-
-
-
-
-
- public class Solution {
- ListNode deleteDuplication(ListNode pHead)
- {
- if(pHead==null) return null;
- ListNode p = pHead;
- ListNode n = new ListNode(0);
- ListNode pre = n;
- n.next = pHead;
- boolean flag = false;
- while(p!=null){
- ListNode q = p.next;
- if(q==null) break;
- if(q.val==p.val){
- while(q!=null && q.val==p.val){
- q = q.next;
- }
- pre.next = q;
- p =q;
- }else{
- if(!flag){
- n.next = p;
- flag = true;
- }
- pre = p;
- p = q;
- }
- }
- return n.next;
- }
- }
原文链接 http://blog.youkuaiyun.com/crazy__chen/article/details/45101011