资讯专栏INFORMATION COLUMN

LeetCode刷题83-简单-删除有序链表的重复项

henry14 / 1046人阅读

☀️ 前言 ☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

? 作者简介 ?

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

? 博客主页:❤布小禅❤
? 作者专栏:
❤Python❤
❤Java❤

❤力扣题❤

这是我刷第 51/100 道力扣简单题

? 一、题目描述 ?

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

示例1:

输入:head = [1,1,2]输出:[1,2]

示例2:

输入:head = [1,1,2,3,3]输出:[1,2,3]

提示:链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序排列

? 二、题目解析 ?

思 路 1 : /color{green}{思路1:} 1

首先考虑特殊情况当只有0或者1个节点时,返回本身
将头结点copy给一个变量
遍历链表,如果当前值与下一个值相同,则将当前节点的下一节点指向下下一节点
否则就更新变量
最后返回copy的头结点

? 三、代码 ?

☁️ 1️⃣. python ☁️

# Definition for singly-linked list.# class ListNode:#     def __init__(self, val=0, next=None):#         self.val = val#         self.next = nextclass Solution:    def deleteDuplicates(self, head: ListNode) -> ListNode:        ans = head         # 将头结点copy给一个变量        if head==None or head.next == None: return head        # 首先考虑特殊情况当只有0或者1个节点时,返回本身        while head.next != None:            # 遍历链表            if head.val == head.next.val: head.next = head.next.next # 如果当前值与下一个值相同,则将当前节点的下一节点指向下下一节点            else: head = head.next  # 否则就更新变量        return ans   # 最后返回copy的头结点

❄️ 2️⃣. C# ❄️

/** * Definition for singly-linked list. * public class ListNode { *     public int val; *     public ListNode next; *     public ListNode(int val=0, ListNode next=null) { *         this.val = val; *         this.next = next; *     } * } */ /*   首先考虑特殊情况当只有0或者1个节点时,返回本身   将头结点copy给一个变量   遍历链表,如果当前值与下一个值相同,则将当前节点的下一节点指向下下一节点   否则就更新变量   最后返回copy的头结点 */public class Solution {    public ListNode DeleteDuplicates(ListNode head)     {        if (head==null||head.next==null) return head;                   // 首先考虑特殊情况当只有0或者1个节点时,返回本身        ListNode start = head;                                          // 将头结点copy给一个变量        while(head.next!=null)                                          // 遍历链表,如果当前值与下一个值相同,则将当前节点的下一节点指向下下一节点        {            if (head.val==head.next.val) head.next = head.next.next;    // 遍历链表,如果当前值与下一个值相同,则将当前节点的下一节点指向下下一节点            else head = head.next;                                      // 否则就更新变量        }        return start;                                                   // 最后返回copy的头结点    }}

? 结语 ?

坚持最重要,每日一题必不可少!?

期待你的关注和督促!?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119312.html

相关文章

  • leetcode83 Remove Duplicates from Sorted List从有序链表

    摘要:题目要求从有序链表中删除重复的数字,并且返回删除后的头结点例如输入链表为返回这题和相似,只是数据结构从数组变成了链表若还有更好的思路,请多多指教想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众 题目要求: 从有序链表中删除重复的数字,并且返回删除后的头结点例如输入链表为1->1->2,返回1->2 这题和leetcode26相似,只是数据结构从数组变成了链表 /*...

    JessYanCoding 评论0 收藏0
  • 剑指offer系列——剑指 Offer 18. 删除表的节点(C语言)

    摘要:导航小助手剑指删除链表的节点题目详情解题思路源代码总结剑指删除链表的节点题目详情给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。 ...

    Jokcy 评论0 收藏0
  • 数据结构之链表OJ练习检验你的链表水平是否合格

    摘要:同时让当前结点的指针指向,从而实现从链表尾部开始的局部反转当递归函数全部出栈后,链表反转完成。这个链表的倒数第个节点是值为的节点。新链表是通过拼接给定的两个链表的所有节点组成的。 目录 1.反转链表 K个一组翻转链表 链表的中间节点: 链表倒数第k个节点: 删除链表倒数第k个节...

    andycall 评论0 收藏0
  • 第7期 Datawhale 组队学习计划

    马上就要开始啦这次共组织15个组队学习 涵盖了AI领域从理论知识到动手实践的内容 按照下面给出的最完备学习路线分类 难度系数分为低、中、高三档 可以按照需要参加 - 学习路线 - showImg(https://segmentfault.com/img/remote/1460000019082128); showImg(https://segmentfault.com/img/remote/...

    dinfer 评论0 收藏0
  • 【前端来刷LeetCode】两数之和与两数相加

    摘要:给定表,存在函数,对任意给定的关键字值,代入函数后若能得到包含该关键字的记录在表中的地址,则称表为哈希表,函数为哈希函数。而中的对象就是基于哈希表结构,所以我们构造一个对象即可,是当前遍历到的值,是其与目标值的差。 大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式、调兼容就够掉头发的了,哪还有多余的头发再去折腾。 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,...

    BLUE 评论0 收藏0

发表评论

0条评论

henry14

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<