存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。
返回同样按升序排列的结果链表。
class Solution {
public ListNode deleteDuplicates(ListNode head) {
/**
链表经典解法
删除就用亚节点的镜像节点,最后返回哑节点的下一个
如果他的 下个节点==下下节点的值 所以用while删除
(因为他重复的可能一连串多个 , 所以用while删除)
*/
if(head==null){
return null;
}
ListNode dummy=new ListNode(0,head);
ListNode node=dummy;
while(node.next!=null&&node.next.next!=null){
if(node.next.val==node.next.next.val){
int x=node.next.val;
//while删除
while(node.next!=null&&node.next.val==x){
node.next=node.next.next;
}
}else{
node=node.next;//继续推进
}
}
return dummy.next;
}
}
标签:node,II,next,链表,while,82,null,节点 From: https://blog.51cto.com/u_14689911/6096731