一、删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 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