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

题目:

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

示例 1:

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

示例 2:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

分析:

链表是有序的,由题干得知,链表节点的排列顺序为从小到大。也就是说,排在后面的节点绝不会小于前面的节点,最多等于前面的节点。

可以使用单指针记录链表中首个节点的地址,然后将该节点数值与下个节点数值进行比较。

如果二者相等,则说明该节点的下一个节点应该删除,所以可以用下下个节点的地址覆盖下一个结点的地址,直至找到与指针所记录的节点数值不同的节点,将数值不同的节点地址替换掉当前指针所指向的地址。

循环结束条件为当前节点和下一个节点都为null。

 

posted @ 2020-07-09 14:45  无心大魔王  阅读(178)  评论(0编辑  收藏  举报