难度:中等
频次:77

题目:给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。

解题思路: 一次遍历
注意:

  • 遍历时候,如果两个节点的值相等,那cur指针移动
  • 最重要的是,不是相等的时候处理,而是不相等的时候处理
    • 不相等的时候,要判断,pre和cur还是不是前后关系
      - 如果还是前后关系,那么把pre移动到cur
      - 如果不是前后关系,那就说明pre之后的到cur(包括cur)都是相等的,那么直接把pre连接到cur的下一个节点
  • 最后因为是遍历,所以肯定cur要移动的
  • 总结一句话:相等的时候动cur,不相等的时候pre和cur都动,一次循环最后结束的时候一前一后
    代码:
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode deleteDuplicates(ListNode head) {ListNode dummyhead=new ListNode(-1);dummyhead.next=head;ListNode cur=head,pre=dummyhead;while(cur!=null){//因为是遍历,所以这个条件是肯定的while(cur.next!=null&&cur.val==cur.next.val){  因为用到cur.next.val,所以cur.next!=null//并且cur.next!=null必须放前面,不然会出现空指针异常cur=cur.next;}//pre和cur之间连在一起,就不用太多操作if(pre.next==cur){pre=cur;}//pre和cur中间有相等的 并且cur跟中间有相等的else{pre.next=cur.next;}cur=cur.next;}                return dummyhead.next;}
}

leetcode 82. 删除排序链表中的重复元素 II相关推荐

  1. 31. Leetcode 82. 删除排序链表中的重复元素 II (链表-双指针)

    给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 .示例 1:输入:head = [1,2,3,3,4,4,5] 输出:[1,2,5] ...

  2. LeetCode 82 删除排序链表中的重复元素 II python

    题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 样例 示例 1:输入: 1->2->3->3->4->4->5 输 ...

  3. LeetCode 82. 删除排序链表中的重复元素 II(链表)

    1. 题目 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出 ...

  4. leetcode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)

    目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3-& ...

  5. Leetcode 82. 删除排序链表中的重复元素 II (每日一题 20210908)

    存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字.返回同样按升序排列的结果链表.示例 1:输入:head = ...

  6. leetcode 82. 删除排序链表中的重复元素 II(map)

    解题思路 map记录数字出现的次数,出现次数大于1的数字从链表中移除 代码 /*** Definition for singly-linked list.* public class ListNode ...

  7. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  8. LeetCode 82 删除排序链表中的重复元素||-中等

    存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字. 返回同样按升序排列的结果链表. 输入:head = [1 ...

  9. 82. 删除排序链表中的重复元素 II(链表操作)

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1-&g ...

最新文章

  1. JPA不同包下同类名查询出错
  2. MPB:北大口腔陈峰、陈智滨等-​口腔微生物组研究主要取样部位及方法
  3. Linux TCP队列相关参数的总结
  4. 获得主窗口句柄AfxGetApp()-m_pMainWnd
  5. lua脚本在redis集群中执行报错--Lua script attempted to access a non local key in a cluster node...
  6. 【自定义排序规则】剑指 Offer 45. 把数组排成最小的数
  7. 编程实现基于二维易位置换机制进行信息加解密_基于TEE的TBOX安全技术
  8. CVP(Critical Value Pruning)illustration with clear principle in details
  9. win10系统按esc会弹出计算机,win10系统版本2004控制面板多出ESC是什么原因?
  10. 关于Java 8的Optional的介绍
  11. 5g虚拟技术旅游_5G造就文旅新时代,驴迹科技探索智慧出行创新领域
  12. 去掉viewstate保持在页面中的一大串字符的方法
  13. ad18敷铜为什么打的孔里面也有_PCB覆铜后放置大量过孔有什么作用?具体怎么放置?...
  14. 1.6 开发集合测试集的大小
  15. xlua 转webgl 遇到的一些错误
  16. 谨慎选择我们的先验 - 对最优拟合概率分布搜索空间的一种约束
  17. Java将字符串中的中文数字转化成阿拉伯数字或阿拉伯数字转化成中文数字
  18. VS与VS Code的区别
  19. 【科研小技巧】Word(2016)绘制三线表样式
  20. 分享132个ASP源码,总有一款适合您

热门文章

  1. Linux学习--第十三天--日志、系统运行级别、grub加密
  2. python工具之myql数据库操作
  3. HDU 4864 Task(2014多校--贪心)
  4. 项目开发中关于jquery中出现问题小结(textarea,disabled,关键字等)
  5. Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)
  6. Linux学习笔记 Day 4~5
  7. Android 最火的高速开发框架xUtils
  8. try catch 之后是否会继续执行
  9. 【强烈推荐】如何给TortoiseGit 配置密钥?
  10. SqlServer中存储过程中将Exec的执行结果赋值给变量输出