【力扣】82. 删除排序链表中的重复元素 II
发布日期:2021-06-29 19:46:44 浏览次数:2 分类:技术文章

本文共 1217 字,大约阅读时间需要 4 分钟。

题目:存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。

返回同样按升序排列的结果链表。

示例 1:

输入:head = [1,2,3,3,4,4,5]
输出:[1,2,5]

示例 2:

输入:head = [1,1,1,2,3]
输出:[2,3]

提示:

链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序排列

答案:

/** * 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) {
if(head == null || head.next == null) return head; ListNode node = new ListNode(0); node.next = head; head = node; while(head.next != null && head.next.next != null){
if(head.next.val == head.next.next.val){
int x = head.next.val; while(head.next != null && head.next.val == x){
head.next = head.next.next; } continue; }else{
head = head.next; } } return node.next; }}

转载地址:https://darkness.blog.csdn.net/article/details/115207852 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】 41. 数据流中的中位数
下一篇:【力扣】456. 132 模式

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月09日 18时30分10秒