删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次,
思路分析:
首先,链表为空直接返回
其次,如果当前结点值与下一结点的值相等
最后要注意一下else的位置,比如说结点1和2比较后相等把2消去,这个时候就不能把指针指向下一结点了,要继续比较1和3,所以消去结点和指向下一结点只能二选一
public ListNode deleteDuplicates (ListNode head) {
if(head == null)
return head;
ListNode cur = head;
while(cur.next != null){//结点1和2比较后相等把2消去,这个时候就不能把指针指向下一结点了,要继续比较1和3
if(cur.val == cur.next.val){
cur.next = cur.next.next;
}
else{
cur = cur.next;
}
}
return head;
}