剑指offer之删除链表中重复的结点
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
思路
这题目有两个思路上的坑,首先链表是没有头结点的,其次是只要出现重复的,就都要删除,和我们之前去重的算法不太一样。
我们先新建一个头结点,模拟成为带有头结点的链表,最后再删去即可,这样可以极大简化操作。边界问题就是移动两个指针即可,注意边界条件的处理。
AC代码
class Solution {public:ListNode* deleteDuplication (ListNode* pHead) {if (pHead == nullptr || pHead->next == nullptr) {return pHead;}auto head = new ListNode(-1);auto pre = head;pre->next = pHead;auto p = pHead;auto q = pHead->next;while (p != nullptr) {if (q != nullptr && p->val == q->val) {int val = p->val;while (p != nullptr && p->val == val) {delete p;p = q;if (q != nullptr) {q = q->next;}}pre->next = p;} else {pre = pre->next;p = p->next;if (p != nullptr) {q = p->next;}}}if (head->next != nullptr) {auto tmp = head->next;delete head;head = tmp;} else {delete head;head = nullptr;}return head;}
};
剑指offer之删除链表中重复的结点相关推荐
- 剑指offer:删除链表中重复的结点
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...
- 【算法】剑指offer - JZ76 删除链表中重复的结点
题目链接 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 分析 1.确定去重的范围,采用 前开后闭 的方法. 2.增加一个头结点,统一操作. (pre ...
- python删除链表中重复的节点_剑指offer:删除链表中重复的节点
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...
- 《剑指offer》删除链表中重复的节点
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后为 ...
- 剑指offer——面试题57:删除链表中重复的结点
剑指offer--面试题57:删除链表中重复的结点 Solution1: 删两遍,自己想的破算法.理论上时间复杂度也是O(n)O(n)O(n),并非最优解. /* struct ListNode {i ...
- 【LeetCode】剑指 Offer 18. 删除链表的节点
[LeetCode]剑指 Offer 18. 删除链表的节点 文章目录 [LeetCode]剑指 Offer 18. 删除链表的节点 一.双指针 一.双指针 本题删除值为 val 的结点需分为两步: ...
- 【算法】剑指 Offer 18. 删除链表的节点
1.概述 剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: he ...
- 【剑指 Offe】剑指 Offer 18. 删除链表的节点
目录标题 算法汇总 题目 关键点 代码 1.解体方法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码地址链接:力 ...
- 不带头节点的链表有哪些缺点_14. 删除链表中重复的结点
删除链表中重复的结点 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4-> ...
最新文章
- 牛逼了!一周内咸鱼疯转 3.6w 次,最终被所有大厂封杀!
- Jquery常用操作:checkbox、select取值,radio、checkbox、select选中及其相关
- 【Matlab】矩阵中选取任意子矩阵
- MySQL探秘(五):InnoDB锁的类型和状态查询
- Lintcode165 Merge Two Sorted Lists solution 题解
- 如何从几何角度上理解方程组只有一个解_深度科普---电磁波(三):无激励下的真空中的Maxwell方程组的解...
- android 打包相关问题记录
- CSS3---4.伪元素选择器
- mysql gui 分区_一文彻底搞懂MySQL分区
- grep/egrep和正则表达式汇总
- leetcode——15.3Sum
- ppt生成器_小米发布会ppt词云怎么做的
- 持续交付 devops_DevOps如何帮助向用户交付出色的应用程序
- [GCJ] Qualification Round 2017
- 11.2.0.2的SPM的一个bug
- windows利用DOS窗口编译C++文件
- 谈谈我们的学习和我们的Blog
- struts2登录注册示例_Struts 2动作示例教程
- php文字滚动特效,js文字横向滚动特效_javascript技巧
- 虚拟机中试用windows 8(视频)