博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
82. Remove Duplicates from Sorted List II
阅读量:2823 次
发布时间:2019-05-14

本文共 1059 字,大约阅读时间需要 3 分钟。

要注意这个链表的第一个元素也有可能被删除掉 所以加了一个空的前驱指针

#include 
using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if(!head||!head->next) return head; ListNode* ptrnull=new ListNode(0); ptrnull->next=head; ListNode* pre;//前驱指针 指向满足条件的最后一个元素 ListNode* scan;//指向正在扫描的元素 pre=ptrnull; scan=head; while(scan) { int count=0;//记录有几个元素和scan中的元素相同 ListNode *temp=scan->next; while(temp&&temp->val==scan->val) { count++; temp=temp->next; }//循环结束后 temp指向和scan不同的元素 或者为空 if(count>0)//删除重复元素 将scan指向下面一个要扫描的元素 { pre->next=temp; scan=temp; } else//count==0 不存在要删除的元素 则更新pre指针和 scan 指针 { pre=scan; scan=temp; } } return ptrnull->next; }};

转载地址:http://jhked.baihongyu.com/

你可能感兴趣的文章
C++关键字详解(持续更新中。。。)
查看>>
git常用指令(一)
查看>>
git常用指令(二)
查看>>
linux grep命令Ff和wf从两个文件中提取相同内容或不同内容的行
查看>>
Java学习笔记20:Eclipse小技巧--快速输入System.out.println();
查看>>
Java学习笔记22:Java实现模拟用户登录
查看>>
剑指offer66之删除链表中的重复节点(java)
查看>>
剑指offer66之第一个只出现一次的字符(java)
查看>>
剑指offer66之字符流中第一个不重复的字符(java)
查看>>
剑指offer66之从上往下打印二叉树(Java)
查看>>
剑指offer66之二叉树的镜像(java)
查看>>
剑指offer66之二叉树的下一个节点(java)
查看>>
剑指offer66之对称的二叉树(java)
查看>>
剑指offer66之按之字形顺序打印二叉树(java)
查看>>
剑指offer66之栈的压入、弹出序列(java)
查看>>
Java Stack栈的实现
查看>>
剑指offer66之调整数组顺序使奇数位于偶数前面(java)
查看>>
剑指offer66之把二叉树打印成多行(java)
查看>>
Redis 知识点总结
查看>>
数据库面试题目集锦
查看>>