劍指offer—面試題18(二):刪除鏈表中重復的節(jié)點

力扣 83. 刪除排序鏈表中的重復元素
給定一個排序鏈表,刪除所有重復的元素,使得每個元素只出現(xiàn)一次。

示例 1:

輸入: 1->1->2
輸出: 1->2

示例 2:

輸入: 1->1->2->3->3
輸出: 1->2->3

使用雙指針,快慢指針一次循環(huán)遍歷,每次對比兩個節(jié)點是否相同,相同快指針指向下一節(jié)點,不同快慢指針個指向下一個節(jié)點。代碼如下:

    func deleteDuplicates(_ head: ListNode?) -> ListNode? {
        guard let head = head else {
            return nil
        }
        var slow: ListNode? = head
        var fast = head.next
        
        while fast != nil {
            if slow?.val == fast?.val {
                slow?.next = fast?.next
                fast = fast?.next
            }else {
                slow = fast
                fast = fast?.next
            }
        }
        return head
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容