题意:有一个排序链表,删除所有重复的元素,使得重复的元素保留一个
例如:2-->3-->3-->4-->4-->5
结果为:2-->3-->4-->5
题解:设置一个节点node=head,再设置一个结点为key,让它为node的下一个结点,如果两个结点的值相等,那就让node跳过key这个重复的结点,让他的下一个为可以的下一个,否则,就让node=key,循环向下走;
代码:
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode node=head;
ListNode key=null;
while(node!=null){
key=node.next;
if(key==null){
break;
}
if(key.val==node.val){
node.next=key.next;
key=null;
continue;
}
node=key;
}
return head;
}
}