LeetCode刷题83-简单-删除有序链表的重复项
Posted 布小禅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode刷题83-简单-删除有序链表的重复项相关的知识,希望对你有一定的参考价值。
☀️ 前言 ☀️
算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!
🙀 作者简介 🙀
大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的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 = next
class 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的头结点
}
}
🌔 结语 🌔
坚持最重要,每日一题必不可少!😸
期待你的关注和督促!😛
以上是关于LeetCode刷题83-简单-删除有序链表的重复项的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Java刷题笔记—83. 删除排序链表中的重复元素
Leetcode刷题100天—83. 删除排序链表中的重复元素(链表)—day03