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