2020--07--17 链表消除重复元素
remove-duplicates-from-sorted-list
http://www.nowcoder.com/questionTerminal/c087914fae584da886a0091e877f2c79
题目描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如: 给出的链表为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;
}
查看30道真题和解析
海康威视公司福利 1137人发布