题目描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 
例如: 给出的链表为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;
    }
京公网安备 11010502036488号