2024.1.14力扣每日一题——删除排序链表中的重复元素

发布时间:2024年01月14日

题目来源

力扣每日一题;题序:83

我的题解

方法一 双指针(快慢指针)

因为题目中的链表已经是升序排列,因此使用两个指针,分别指向重复元素的开始和找到第一个不相同元素的的位置。只要两个指针的值不相同,则需要将p.next指向q,并且让p指向p.next。

时间复杂度:O(n)。链表的长度
空间复杂度:O(1)

 public ListNode deleteDuplicates(ListNode head) {
 	if(head==null||head.next==null)
        return head;
    ListNode p=head;
    ListNode q=head.next;
    while(q!=null){
        if(p.val!=q.val){
            p.next=q;
            p=p.next;
        }
        q=q.next;
    }
    p.next=null;//这个好像不要也行
    return head;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

文章来源:https://blog.csdn.net/weixin_42075274/article/details/135584376
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。