
前言
我們社區(qū)陸續(xù)會將顧毅(Netflix 增長黑客,《iOS 面試之道》作者,ACE 職業(yè)健身教練。)的 Swift 算法題題解整理為文字版以方便大家學習與閱讀。
LeetCode 算法到目前我們已經(jīng)更新了 82 期,我們會保持更新時間和進度(周一、周三、周五早上 9:00 發(fā)布),每期的內(nèi)容不多,我們希望大家可以在上班路上閱讀,長久積累會有很大提升。
不積跬步,無以至千里;不積小流,無以成江海,Swift社區(qū) 伴你前行。如果大家有建議和意見歡迎在文末留言,我們會盡力滿足大家的需求。
難度水平:簡單
1. 描述
給定一個已排序的鏈表的頭 head
, 刪除所有重復的元素,使每個元素只出現(xiàn)一次 。返回 已排序的鏈表 。
2. 示例
示例 1
輸入:head = [1,1,2]
輸出:[1,2]
示例 2
輸入:head = [1,1,2,3,3]
輸出:[1,2,3]
約束條件:
- 鏈表中節(jié)點數(shù)目在范圍
[0, 300]
內(nèi) -100 <= Node.val <= 100
- 題目數(shù)據(jù)保證鏈表已經(jīng)按升序 排列
3. 答案
/**
* Definition for singly-linked list.
* public class ListNode {
* public var val: Int
* public var next: ListNode?
* public init(_ val: Int) {
* self.val = val
* self.next = nil
* }
* }
*/
class RemoveDuplicatesFromSortedList {
func deleteDuplicates(_ head: ListNode?) -> ListNode? {
guard let head = head else {
return nil
}
var curt = head
while curt.next != nil {
if curt.next!.val == curt.val {
curt.next = curt.next!.next
} else {
curt = curt.next!
}
}
return head
}
}
- 主要思想:迭代列表,通過將
next
替換為next.next
跳過重復項。 - 時間復雜度: O(n)
- 空間復雜度: O(1)
該算法題解的倉庫:LeetCode-Swift
點擊前往 LeetCode 練習文章來源:http://www.zghlxwxcb.cn/news/detail-499941.html
關于我們
我們是由 Swift 愛好者共同維護,我們會分享以 Swift 實戰(zhàn)、SwiftUI、Swift 基礎為核心的技術內(nèi)容,也整理收集優(yōu)秀的學習資料。文章來源地址http://www.zghlxwxcb.cn/news/detail-499941.html
到了這里,關于LeetCode - #83 刪除排序鏈表中的重復元素的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!