前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【一天一道Leetcode】删除排序链表的重复元素

【一天一道Leetcode】删除排序链表的重复元素

作者头像
潘永斌
发布2021-04-20 15:54:14
2820
发布2021-04-20 15:54:14
举报
文章被收录于专栏:看那个码农看那个码农

01

题目描述

题目描述:

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

示例1:

代码语言:javascript
复制
输入:head = [1,2,2,3,4]
输出:[1,2,3,4]

提示:

1.链表中节点数目在范围[0, 300]内;

2.-100<= Node.val<= 100;

3.题目数据保证链表已经按升序排列。

02

思路和方法

由题可知重复的元素在链表出现的位置是连续的,

因此我们只需进行一次遍历,就能删除重复元素。

由于输入是链表,我们可以用一个指针fir指向链表的头节点,随后开始对链表进行遍历。

如果当前指针fir指向元素与fir.next指向元素相同,则可以利用:

fir.next=fie.next.next将该节点元素删掉。

以此类推,用这种方法遍历完链表后,返回链表头节点输出即可。

我们用代码表示为:

代码语言:javascript
复制
class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        if not head:
            return head

        fir = head
        while fir.next:
            if fir.val == fir.next.val:
                fir.next = fir.next.next
            else:
                fir = fir.next

        return head
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 看那个码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01
  • 02
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档