美文网首页
Leetcode 删除排序链表中的重复元素

Leetcode 删除排序链表中的重复元素

作者: Yohann丶blog | 来源:发表于2021-03-29 11:32 被阅读0次
6111616988667_.pic_hd.jpg

题目描述

leetcode 第83题:删除排序链表中的重复元素
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
示例:

list1.jpeg
输入:head = [1,1,2]
输出:[1,2]

解题方法

链表
原址题解

  • 解题思路

使用指针cur表示当前节点开始遍历链表head
如果当前节点数字cur.val等于下一个节点数字cur.next.val
cur.next指针cur.next.next,反之将cur指向cur.next
遍历完成,直接返回head即可

  • 复杂度

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

  • 代码实现

python3

class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        if not head: return head
        cur = head
        while cur.next:
            if cur.val==cur.next.val:
                cur.next = cur.next.next
            else:
                cur = cur.next
        return head

php

class Solution {
    function deleteDuplicates($head) {
        if(!$head) return $head;
        $cur = $head;
        while($cur->next){
            if($cur->val==$cur->next->val){
                $cur->next = $cur->next->next;
            }else{
                $cur = $cur->next;
            }
        }
        return $head;
    }
}

相关文章

网友评论

      本文标题:Leetcode 删除排序链表中的重复元素

      本文链接:https://www.haomeiwen.com/subject/nlxbhltx.html