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

2024.1.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;
}

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

你可能感兴趣的:(java,力扣每日一题,leetcode,链表,算法,java)