一、删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例 1:

示例 2:

解题思路:由于是排序链表,所以,直接按照遍历的思路就可以解

1,如果cur.Val==next.Val,cur.Next=next.Next

2,链表正常遍历就行了

二、删除链表中重复元素(没有排序)

给定一个无序链表,删除所有含有重复数字的节点。

示例 1:

输入: 1->3->2->3->5->4->4 输出: 1->3->2->5->4 示例 2:

输入: 1->1->1->2->3 输出: 1->2->3

这种情况下就需要对元素值进行hash,如果不存在则忽略元素

三、删除排序链表中的重复元素 II

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

示例 1:

示例 2:

解题思路:

1,始终要让pre在cur的前面,通过判断cur.val == cur.next.val判断重复元素是否存在。

2,为了简化,给链表加一个头部

h -> 1 -> 2 3 3 4 -> 4 -> 5

| |

pre cur