Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >[随缘一题]删除排序链表中的重复元素

[随缘一题]删除排序链表中的重复元素

作者头像
呼延十
发布于 2019-07-01 08:53:28
发布于 2019-07-01 08:53:28
1.5K00
代码可运行
举报
文章被收录于专栏:呼延呼延
运行总次数:0
代码可运行

来源

lintcode-删除排序链表中的重复元素

描述

给定一个排序链表,删除所有重复的元素每个元素只留下一个。

样例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
给出 1->1->2->null,返回 1->2->null

给出 1->1->2->3->3->null,返回 1->2->3->null

解题思路

简单题.

如果当前节点的值和下一节点的值相等,则跳过下一个节点.即将当前节点的next指针指向下一个节点的指针.

如果不相等,则将当前指针向后移一位.

举个栗子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1->1->2->3->3-null

1. current=1,next=1.相等,则变为:1->2->3->3->null.
2. current=1,next=2.不相等,则将当前指针后移.
3. current=2,next=3.不相等,将当前指针后移.
4. current=3,next=3.相等,则变为:1->2->3->null;
5. current=3,next=null.结束.

实现代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public ListNode deleteDuplicates(ListNode head) {
  //头结点不会变化,所有提前记录以便防具
  ListNode node = head;
  //当前指针为空或者像一个节点为空,结束
  while (head != null && head.next != null) {
    //如果当前节点的值等于下一个节点的值,则跳过下一个节点
    if (head.val == head.next.val) {
      head.next = head.next.next;
    } else {
      //不相等的话讲当前指针后移一位
      head = head.next;
    }
  }
  //返回初始记录的头结点.
  return node;
}

完。

ChangeLog

2019-01-04 完成

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
链表-删除排序链表中的重复元素,你能想到几种解法?
问题 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字 示例1 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例二 输入: 1->1->1->2->3 输出: 2->3 解法一 提取问题关键字,有序链表,删除重复,因为是有序的,所以重复的元素一定相邻的,不会出现(2->3-2)这种情况的,最简单的办法,遍历链表,利用数据结构map,key是链表节点的值,value是值在链表中出现的次数,最终次数大于1的就是重复的,等于1的就是不重复的,但是ma
阿伟
2019/08/02
1.6K0
链表-删除排序链表中的重复元素,你能想到几种解法?
删除排序链表中的重复元素
题意 给定一个排序链表,删除所有重复的元素每个元素只留下一个。 样例 给出 1->1->2->null,返回 1->2->null 给出 1->1->2->3->3->null,返回 1->2->3->null 思路 设置一个指针指向排序链表的头结点,遍历链表,若当前元素与下一个元素相同,直接将下一个元素的 next 指向下下个即可。 代码实现 /** * Definition for ListNode * public class ListNode { * int val; * L
一份执着✘
2018/06/04
1.5K0
LeetCode每日一题-5:删除排序链表中的重复元素
这是一个简单的问题,仅测试你操作列表的结点指针的能力。由于输入的列表已排序,因此我们可以通过将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。
墨明棋妙27
2022/09/23
1540
Leetcode No.83 删除排序链表中的重复元素
由于输入的列表已排序,因此我们可以通过将结点的值与它之前的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改上一个结点的 next 指针,以便它跳过当前结点并直接指向下一个结点。
week
2021/05/06
3090
删除排序链表中重复元素的方法
链表的操作非常常见,也是面试中经常会被问道的问题。对于链表重复元素的删除,有两个变体,现在总结如下。 链表代码如下:
冬天里的懒猫
2020/08/03
1K0
删除排序链表中的重复元素【文末附思维导图】
题目中有一个特殊且重要的条件,就是排序,这个链表是已经排好序的,那么如果存在相同的元素,一定是相邻的节点,这就好办了,我们可以通过遍历一次链表,在遍历过程中判断当前节点的 val 和下一个节点的 val 是不是相等,如果相等则删除下个节点,以此类推,直到遍历完链表。
LieBrother
2020/05/25
4770
82. 删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
张伦聪zhangluncong
2022/10/26
2850
82. 删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
Michel_Rolle
2021/03/01
2.5K0
LintCode 删除排序链表中的重复数字 II题目分析代码
给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。 样例 给出 1->2->3->3->4->4->5->null,返回 1->2->5->null 给出 1->1->1->2->3->null,返回 2->3->null
desperate633
2018/08/22
4560
LeetCode 82. 删除排序链表中的重复元素 II(链表)
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
Michael阿明
2020/07/13
4070
LeetCode 82. 删除排序链表中的重复元素 II(链表)
画解算法:83. 删除排序链表中的重复元素
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
灵魂画师牧码
2019/06/27
3570
画解算法:83. 删除排序链表中的重复元素
​LeetCode刷题实战83: 删除排序链表中的重复元素
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
程序员小猿
2021/01/19
2570
牛客网-删除链表中重复的节点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
手撕代码八百里
2020/07/28
9070
​LeetCode刷题实战82:删除排序链表中的重复元素 II
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/
程序员小猿
2021/01/19
3190
83. 删除排序链表中的重复元素
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。
杨鹏伟
2021/04/25
7000
83. 删除排序链表中的重复元素
七十一、去重交换排序链表、 求链表的中间结点
最近在重新梳理学算法的知识,本文为链表常见操作复习的总结文章,会讲解常见的链表题目实现思路及附上答案,这些题目在leetcode上对应的题号也有给出,好好学习算法吧~
润森
2022/08/17
4470
七十一、去重交换排序链表、 求链表的中间结点
leetcode链表之删除排序链表中的重复元素
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list
code4it
2020/09/14
6020
leetcode链表之删除排序链表中的重复元素
leetcode链表之删除排序链表中的重复元素
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list
code4it
2020/09/23
5510
删除链表中的元素
题意 删除链表中等于给定值 val 的所有节点。 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 思路 只需要将一个指针,遍历链表,当链表中有元素与 val 值相同时,让当前节点的 next 节点直接指向 当前节点的 next.next 节点即可。 代码实现 /** * Definition for singly-linked list. * public class ListNode { * int val;
一份执着✘
2018/06/04
2.2K0
LeetCode122|删除排序链表中的重复元素II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
码农王同学
2020/10/27
3060
推荐阅读
相关推荐
链表-删除排序链表中的重复元素,你能想到几种解法?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验