/**
* 真题描述:给定一个排序链表,
* 删除所有含有重复数字的结点,只保留原始链表中 没有重复出现的数字。
* 输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
*/
function sort(head) {
if (!head || !head.next) {
return head
}
let dummy = new ListNode()
dummy.next = head // dummy永远指向头节点
let cur = dummy
// cur后面至少有两个结点时
while(cur.next && cur.next.next) {
// 比较后面两个结点
if (cur.next.val === cur.next.next.val) {
// 重复则记下这个值
let val = cur.next.val
// 反复排查后面的元素是否存在多次重复情况
while(cur.next && cur.next.val === val) {
// 若有,则删除
cur.next = cur.next.next
}
} else {
cur = cur.next
}
return dummy.next
}
}