83. Remove Duplicates from Sorted List
by Botao Xiao
Question
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3
Thinking:
- Method 1:
- 循环。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null) return head;
ListNode dummy = new ListNode(Integer.MIN_VALUE);
dummy.next = head;
ListNode cur = dummy;
ListNode pre = dummy;
while(cur.next != null){
if(cur.next.val != pre.val){
pre.next = cur.next;
pre = pre.next;
cur = cur.next;
}else{
cur = cur.next;
}
}
pre.next = null;
return dummy.next;
}
}
二刷
这道题二刷的时候还是很顺利的,很快就出结果了。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode cur = dummy.next;
ListNode pre = dummy;
while(cur != null && cur.next != null){
while(cur.next != null && cur.val == cur.next.val){
cur = cur.next;
}
pre.next = cur;
cur = cur.next;
pre = pre.next;
}
return dummy.next;
}
}
Reference
Subscribe via RSS