题目描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如: 给出的链表为1->1->2,返回1->2. 给出的链表为1->1->2->3->3,返回1->2->3.
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example, Given1->1->2, return1->2. Given1->1->2->3->3, return1->2->3.
首先,链表为空直接返回
其次,如果当前结点值与下一结点的值相等
最后要注意一下else的位置,比如说结点1和2比较后相等把2消去,这个时候就不能把指针指向下一结点了,要继续比较1和3,所以消去结点和指向下一结点只能二选一
代码实现:
public ListNode deleteDuplicates (ListNode head) { if(head==null)return head; ListNode temp = head; while(temp.next!=null){ if(temp.val==temp.next.val){ temp.next=temp.next.next; }else{ temp=temp.next; } } return head; }