牛客网-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-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享
- 2024-09-28nvm命令太慢,是什么原因-icode9专业技术文章分享
- 2024-09-28Kotlin 如何增加、删除和修改 MutableStateFlow 中的值。-icode9专业技术文章分享
- 2024-09-28Kotlin的stateFlow.update 写法介绍-icode9专业技术文章分享
- 2024-09-28kotlin 怎么获取当前时间格式-icode9专业技术文章分享