题目描述:
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
首先定义一个根节点,dummy,然后next指向head,之后进入循环,然后我们需要做的就是不断更新node的next节点本题还有一种做法就是全部遍历出来放入到list中然后我们再连接,第一种方法没写出来,,,,
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode node = dummy;
while (node != null && node.next != null)
{
ListNode nextNode = node.next;
if (nextNode.next == null)
break;
if (nextNode.val != nextNode.next.val)
{
node = nextNode;
}
else {
while (nextNode.next != null && nextNode.val == nextNode.next.val){
nextNode = nextNode.next;
}
}
node.next = nextNode.next;
}
return dummy.next;
}
}