82.删除排序链表中的重复元素-ii
小于 1 分钟
82.删除排序链表中的重复元素-ii
/*
* @lc app=leetcode.cn id=82 lang=typescript
*
* [82] 删除排序链表中的重复元素 II
*/
// @lc code=start
/**
* Definition for singly-linked list.
* class ListNode {
* val: number
* next: ListNode | null
* constructor(val?: number, next?: ListNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
* }
*/
function deleteDuplicates(head: ListNode | null): ListNode | null {
let newNode = new ListNode(Infinity, head);
let p = head as ListNode;
let current: ListNode | null = newNode;
while (current) {
let cur = current as ListNode;
// 找重复
while (cur.next != null && cur.val === cur.next.val) {
cur = cur.next;
}
if (cur == current) {
// 无重复
p = cur;
} else {
// 有重复,全部抛弃
p.next = cur.next;
}
current = cur.next;
}
return newNode.next;
}
class ListNode {
val: number;
next: ListNode | null;
constructor(val?: number, next?: ListNode | null) {
this.val = val === undefined ? 0 : val;
this.next = next === undefined ? null : next;
}
}
let tag1 = new ListNode(0);
let tag2 = new ListNode(0);
let tag3 = new ListNode(0);
let tag4 = new ListNode(0);
let tag5 = new ListNode(0);
tag1.next = tag2;
tag2.next = tag3;
tag3.next = tag4;
tag4.next = tag5;
console.log(deleteDuplicates(tag1));
// @lc code=end
Loading...
