删除有序单链表中的重复数据_删除链表中的重复元素

删除有序单链表中的重复数据_删除链表中的重复素

描述

给出一个升序排序的链表,删除链表中的所有重复出现的素,只保留原链表中只出现一次的素。
例如:
给出的链表为1→2→3→3→4→4→51 \to 2\to 3\to 3\to 4\to 4\to51→2→3→3→4→4→5, 返回1→2→51\to 2\to51→2→5.
给出的链表为1→1→1→2→31\to1 \to 1\to 2 \to 31→1→1→2→3, 返回2→32\to 32→3.

数据范围:链表长度 0≤n≤ \le n \le ≤n≤10000,链表中的值满足 ∣val∣≤1000|val| \le 1000∣val∣≤1000

要求:空间复杂度 O(n)O(n)O(n),时间复杂度 O(n)O(n)O(n)

进阶:空间复杂度 O(1)O(1)O(1),时间复杂度 O(n)O(n)O(n)

示例1

输入:

{1,2,2}

返回值:

{1}

示例2

输入:

{}

返回值:

{} 
public class Solution { public ListNode deleteDuplicates(ListNode head) { if(head==null||head.next==null) return head; ListNode newHead = new ListNode(head.val-1); newHead.next = head; ListNode cur = head; ListNode last = newHead; while(cur!=null&&cur.next!=null){ if(cur.val!=cur.next.val){ last = cur; }else{ while(cur.next!=null&&cur.val==cur.next.val) cur = cur.next; last.next = cur.next; } cur = cur.next; } return newHead.next; } }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/139887.html

(0)
上一篇 2024年 6月 26日
下一篇 2024年 6月 26日

相关推荐

关注微信