82.删除排序链表中的重复元素-ii

时游小于 1 分钟LeetCode

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

上次编辑于:
贡献者: 15327360835
Loading...