- Remove Duplicates from Sorted List
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
python:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
if head == None or head.next==None:
return head
p = head
curr = head.next
while curr!=None:
if p.val!=curr.val:
p.next = curr
p = curr
curr = curr.next
p.next = curr
return head
java:
```java
/**
* 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 ||head.next ==null)
return head;
ListNode p = head;
ListNode curr = head.next;
while(curr!=null){
if(curr.val != p.val){
p.next = curr;
p = curr;
}
curr = curr.next;
}
p.next = curr;
return head;
}
}
tips:
最后要要记住p.next = curr(null) 不然最后要是有两个相似的就会最后两个重复
比如1->1->2->3->3
最后的结果会是1,2,3,3
所以要注意