题目来源:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/description/
题目描述:
由于该题并不算太难,算法过程就不再赘述。 该题可以用递归也可以不用递归
代码如下:
递归实现:
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null || head.next==null)
return head;
ListNode cur=head.next;
if(cur.val!=head.val){
head.next=deleteDuplicates(cur);
return head;
}
else{
while(cur!=null && head.val==cur.val){
cur=cur.next;
}
return deleteDuplicates(cur);
}
}
}
非递归实现:
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode dummy = new ListNode(0);
dummy.next = head;
head = dummy;
while (head.next != null && head.next.next != null) {
if (head.next.val == head.next.next.val) {
int val = head.next.val;
while (head.next != null && head.next.val == val) {
head.next = head.next.next;
}
} else {
head = head.next;
}
}
return dummy.next;
}
}