LeetCode(82)题解: Remove Duplicates from Sorted List II
2024-10-21 05:54:22
https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/
题目:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5
, return 1->2->5
.
Given 1->1->1->2->3
, return 2->3
.
思路:
需要两个指针,a用来纪录新链表,b用来遍历老链表,因为只有删除操作,需要一个flag标记ab段要不要删除。此外要注意头节点的处理。
AC代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if(head==NULL)
return NULL;
ListNode* newhead=new ListNode(); // to handle head
newhead->next=head;
ListNode* a=newhead,*b=newhead->next;
int now=head->val;
bool occur_flag=false;
while(b->next!=NULL){
if(b->next->val==now){
occur_flag=true;
}
else{
if(occur_flag==true){
a->next=b->next; //delete duplicate numbers
b=a; //update pointers
}
else{
a=b;
}
occur_flag=false;
now=b->next->val;
}
b=b->next;
}
if(occur_flag==true){
a->next=b->next; //delete duplicate numbers
b=a; //update pointers
}
else{
a=b;
}
return newhead->next;
}
};
最新文章
- 分组统计并计算每组数量sql
- HTML5&;CSS3练习笔记(一)
- dev gridcontrol纵向合并单元格设置
- nginx reload
- MySQL Profile
- GIS:揭开你神秘的面纱
- Rouh set 入门知识1(基础定义篇)
- HC-05蓝牙模块基本使用
- FPGA编程基础(一)--參数传递与寄存器使用
- 关于在jsp中的路径问题
- 关于 Java 面试,你应该准备这些知识点
- /usr/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarning)
- 20165205 《网络对抗技术》 Exp0 Kali安装
- SpringMVC学习(二)———— 参数绑定
- centos7下升级SSH
- Android Studio 打包签名教程
- opus代码解析
- git协同开发
- SqlAlchemy操作(三)
- Abp中SwaggerUI的多个接口文档配置说明