
文章目錄
- ?? 前言 ??
- 🙀 作者簡介 🙀
- 💗 一、題目描述 💗
- 💁 二、題目決議 💁
- 🏃 三、代碼 🏃
- ?? 1??. python ??
- ?? 2??. C# ??
- 🌔 結語 🌔
?? 前言 ??
演算法作為極其重要的一點,是大學生畢業找作業的核心競爭力,所以為了不落后與人,開始刷力扣演算法題!
🙀 作者簡介 🙀
大家好,我是布小禪,一個盡力讓無情的代碼變得生動有趣的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的頭結點
}
}
🌔 結語 🌔
堅持最重要,每日一題必不可少!😸
期待你的關注和督促!😛

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/297845.html
標籤:python
