题目:给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。
代码:
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode deleteDuplicates (ListNode head) {
// write code here
if(head == null || head.next == null) return head;
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode preNode = dummy;
ListNode curr = head;
while(curr != null && curr.next!= null){
if(curr.val == curr.next.val){
int memo = curr.val;
while(curr.next != null && curr.next.val == memo){
curr = curr.next;
}
preNode.next = curr.next;
curr = curr.next;
}else{
preNode = curr;
curr = curr.next;
}
}
return dummy.next;
}
}