leetcode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)
目录
题目描述:
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
解法:
/**
* 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) {
ListNode* _head = NULL;
ListNode* nxt = NULL;
if(head == NULL){
return head;
}
int pre = head->val;
ListNode* cur = head->next;
bool repeated = false;
while(cur != NULL){
if(cur->val != pre){
if(repeated == false){
if(_head == NULL){
_head = new ListNode(pre);
nxt = _head;
}else{
nxt->next = new ListNode(pre);
nxt = nxt->next;
}
}
repeated = false;
pre = cur->val;
}else{
repeated = true;
}
cur = cur->next;
}
if(repeated == false){
if(_head == NULL){
_head = new ListNode(pre);
}else{
nxt->next = new ListNode(pre);
}
}
return _head;
}
};

更多精彩