删除排序链表中的重复节点

第一种是保留一个重复节点

https://leetcode.com/problems/remove-duplicates-from-sorted-list/

这种好理解,碰到重复的就把指针指向重复节点的下一个。

第二种删除所有重复的

https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/

这种由于传入链表的头结点存在被删除的可能,所以先定义了一个新的头结点。

定义两个指针,后一个(last)不断指向重复的节点,当遇到不重复节点的时候,也就是 $last != last.next$,需要吧前一个(pre)指针的下一个指向后一个指针的下一个(因为要删除所有重复的节点,此时 last 指向当前重复的最后一个节点,所以要让 $pre.next = last.next$)

猜你喜欢

转载自www.cnblogs.com/ainsliaea/p/11484655.html
今日推荐