牛客网-NC24 删除有序链表中重复的元素-II
2021/7/29 23:06:30
本文主要是介绍牛客网-NC24 删除有序链表中重复的元素-II,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、题目
二、思路
方法一:用map容器储存每个值,然后遍历map容器,新建值为1的节点
方法二、双指针
-
首先创建一个新节点,新节点指向head,并且定义两个节点,当前节点和前节点
-
while循环,当前节点和它的下一个节点不为空。两种情况
- 当前节点和下一个节点相等,遍历找到第一个不相等的,然后pre指向这个第一个不相等的节点
- 当前节点和下一个节点相等,pre=当前节点,当前节点=下一个节点
三、代码
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: /** * * @param head ListNode类 * @return ListNode类 */ ListNode* deleteDuplicates(ListNode* head) { if(head==nullptr || head->next==nullptr) { return head; } //定义头结点,使判断从第一个开始 ListNode *node=new ListNode(-1); node->next=head; //定义两个节点 ListNode *pre=node; ListNode *cur=head; //当前节点和当前节点的下一个节点不为空 while(cur && cur->next) { //如果下一个节点和当前节点相同 if(cur->val==cur->next->val) { //找到第一个不相等的,即为cur->next while(cur->next && cur->val==cur->next->val) { cur=cur->next; } //pre节点指向第一个不相等的 pre->next=cur->next; //当前节点指向不相等的第一个 cur=cur->next; } else { //pre等于当前节点 pre=cur; //当前节点等于下一个 cur=cur->next; } } return node->next; } };
这篇关于牛客网-NC24 删除有序链表中重复的元素-II的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解