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;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~