删除链表中的重复节点
来源:互联网 发布:网络推广经理工作职责 编辑:程序博客网 时间:2024/05/16 14:04
这里的删除是只要有重复就要全部删除,如1->2->2->3,删除之后就是1->3.
#include<stdio.h>#include<stdlib.h>struct ListNode { int val; struct ListNode *next;};struct ListNode* deleteDuplicates(struct ListNode* head) { if(NULL==head||NULL==head->next) return head;struct ListNode** curNext = &head;//用来指向head struct ListNode* cur = head; while(NULL!=cur) { struct ListNode* temp=cur; while(NULL!=cur->next && cur->next->val==cur->val) cur = cur->next; if(cur==temp) { *curNext=temp; curNext=&(*curNext)->next; } cur=cur->next; } *curNext = NULL; return head; }int main(){int i,n,tmp;while(scanf("%d",&n)!=EOF){ListNode *head=(ListNode *)malloc(sizeof(ListNode));ListNode *p=head;head->next=NULL;for(i=0;i<n;i++){scanf("%d",&tmp);ListNode *q=(ListNode *)malloc(sizeof(ListNode));q->val=tmp;p->next=q;p=q;p->next=NULL;}ListNode *r=deleteDuplicates(head->next);while(r){printf("%d ",r->val);r=r->next;}printf("\n");}return 0;}
1 0
- 删除链表中的重复节点
- 删除链表中的重复节点
- 删除有序链表中的重复节点
- 删除有序链表中的重复节点
- 删除链表中的重复节点、剩余节点逆序输出
- 删除链表中的重复节点、剩余节点逆序输出
- 删除链表中的重复节点、剩余节点逆序输出
- 删除链表重复节点
- LeetCode 刷题: 删除已排序链表中的重复节点
- 删除有序链表中的重复节点2
- 面试题57:删除链表中的重复节点
- 练习 删除链表中的重复节点、剩余节点逆序输出
- [华为机试练习题]24.删除链表中的重复节点、剩余节点逆序输出
- 华为机试题:删除链表中的重复节点、剩余节点逆序输出
- 删除链表重复节点-java
- 删除排序链表的重复节点
- 剑指offer-删除链表重复节点
- 删除单链表中的重复节点(删除重复项)
- 2015062808 - EffactiveJava笔记 - 第43条 返回零长度的数组或者集合,而非null
- hdu1312——深度搜索(dfs)
- SQL常用语句
- 区间估计:
- 关联引用
- 删除链表中的重复节点
- 共享内存的创建和映射shmget()和shmat()
- SQL字符串函数
- 6.28 洗刷刷 oj 继承 private protocted
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第六章 选择结构
- EA那些小事
- 别人抢红包,我们研究一下红包算法
- SQL使用一张表的数据更新另一张表
- Solaris 10 改ip参考文档之一