作业2.112:删除排序链表中的重复元素
来源:互联网 发布:行知高级技工学校 编辑:程序博客网 时间:2024/06/05 07:10
题目:删除排序链表中的重复元素
样例:给出1->1->2->null,返回1->2->null。
给出1->1->2->3->3->null,返回1->2->3->null。
思路:在排序链表中,除去空链表和链表长度为1的两种情况。设定两个指针P和Q,Q赋值为头节点,P赋值为Q的后继。当Q与P值相同时,做删除操作,使Q指向P的后继,P赋值为Q的后继,也就是原来P的后继,然后再次判断是否相等。当Q与P不相等时,两个指针同时后移一个长度,Q赋值为P,P赋值为新的Q的后继。当P为链表结尾时,结束删除,返回修改后的链表。
代码:
class Solution {public: /** * @param head: The first node of linked list. * @return: head node */ ListNode *deleteDuplicates(ListNode *head) { // write your code here if (head== NULL) return NULL; if (head->next== NULL)return head; ListNode *p, *q; p= head; q= NULL; while (p!= NULL) { if (q!= NULL&& p->val== q->val) { q->next= p->next; p= q->next; } else { q= p; p= p->next; } } return head; }};
感想:因为本题的前提是排序链表,所以做起来比较简单,关键就在于设置两个指针,分别指向相邻的前后节点,然后判断,符合条件后删除,然后再赋值给指针新的节点,依次判断完整条链表,就完成了所有的删除操作。
1 0
- 作业2.112:删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- 删除排序链表中的重复元素
- C#125课的主要内容
- UVA 658 状态压缩+最短路
- Kail安装docker和intrigue-core用于信息收集
- mysql+navicat注册启动服务需要注意的事情
- 零基础精通PHP+MySQL网络编程课程
- 作业2.112:删除排序链表中的重复元素
- 利用Matlab对图像进行简单的预处理
- 韩顺平php开发合集208集-从Html基础到php开发Web QQ实战 共15G
- mybatis实现saveOrUpdate
- 向jQuery函数传递多个参数
- AtCoder Beginner Contest 056 题解挖坑
- Linux的常用shell命令技巧集
- [06]流程控制语句
- JavaSE基础之注解的使用