算法题(50):删除排序链表中的重复元素 II
审题:
需要我们把链表中出现了两次及以上的数据从链表中删除,并返回新的链表的头结点
思路:
其实说是要删除链表,我们只需要建立一个哨兵节点,然后把只出现一次的数据的节点链接上即可方法一:双指针
我们利用prvnode指针指向前一个节点,用cur指针指向当前遍历到的节点。
当cur的值和val相同说明是重复数据:更新cur和prvnode指针,然后count++
当不同时
若count==1:说明该数据只出现了一次,执行插入操作
若coutn!=1: 说明上一个节点出现多次,不用插入,然后将count置为1
全部遍历完之后,可能会出现最后一个数据是只出现一次但是还没插入的情况,出循环后若count==1则满足这种情况,需要进行链接
解题:
(1)预处理:变量创建
(2)核心代码
1.插入数据到返回链表的时候注意将插入节点的后面断掉,若不断掉返回的时候会出现不应插入的数据被连接在返回链表中的情况
(3)尾处理
82. 删除排序链表中的重复元素 II - 力扣(LeetCode)