一、问题描述
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
二、问题分析
链表的遍历问题。从head开始,与后边的节点的val进行比较,相同就直接删除后边的节点;不同就后移。很简单。时间复杂度O(n)。
三、Java AC代码
public ListNode deleteDuplicates(ListNode head) {
if(head==null || head.next==null){
return head;
}
ListNode p = head;
while(p.next!=null){
if(p.val == p.next.val){
p.next = p.next.next;
}else {
p = p.next;
}
}
return head;
}