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

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

示例 1:

输入: 1->2->3->3->4->4->5

输出: 1->2->5

示例 2:

输入: 1->1->1->2->3

输出: 2->3

/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
//baseCase
if (head == null || head.next == null) {
return head;
} ListNode next = head.next;
//如果是这种情况
// 1 --> 1 --> 1 --> 2 --> 3
// head next
//1.则需要移动next直到出现与当前head.value不相等的情况(含null)
//2.并且此时的head已经不能要了,因为已经head是重复的节点
//--------------else-------------
// 1 --> 2 --> 3
// head next
//3.如果没有出现1的情况,则递归返回的节点就作为head的子节点
if (head.val == next.val) {
//1
while (next != null && head.val == next.val) {
next = next.next;
}
//2
head = deleteDuplicates(next);
} else {
//3
head.next = deleteDuplicates(next);
}
return head;
}
}

最新文章

  1. 微信小程序组件-----城市切换
  2. iOS UITableViewController出现crash
  3. git 删除和重命名文件
  4. iOS-硬件声音 ,振动,提示警告
  5. drop、 truncate 、 delete
  6. CUBRID学习笔记23 关键字列表
  7. linux 下安装rsync
  8. 如何在github上展示作品——为你的项目生成一个快速访问的网址如(DaisyWang88.github.io)
  9. CentOS6.5 MySQL 配置设置总结笔记
  10. Gmail POP3设定
  11. MATLAB描绘极坐标图像——polar
  12. VMware虚拟机服务的vmware-hostd自动启动和停止
  13. hdu 2503 a/b + c/d
  14. angular2 官方demo heroApp
  15. 【Win 10 应用开发】在代码中加载文本资源
  16. asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度
  17. C++ 使用system()实现锁定屏幕
  18. NoSuchMethodError: ... addOnCompleteCallback
  19. 不同的最小割(cqoi2016,bzoj4519)(最小割树)
  20. JVM学习--内存分配策略(持续更新)

热门文章

  1. [hdu4498]离散化,simpson求积分
  2. 分布式项目配置工程,在项目间互通要先在linux下开启zookeeper
  3. 【白嫖】IT笔试面试真题讲解系列文章+视频
  4. 浅析常见的 Web 安全预防
  5. 「雕爷学编程」Arduino动手做(41)---激光接收管模块
  6. PHP+Apache+MySQL+phpMyAdmin安装和配置
  7. Django操作cookie实例
  8. Django项目文件
  9. iframe中请求页面而session失效时页面跳转问题
  10. CF834D