链表-简单:删除排序链表中的重复元素 By Swift

1,277 阅读1分钟

题目:

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例 1:

输入: 1->1->2
输出: 1->2
示例 2:

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

本题主要考察队链表指针的使用。

思路:两个指针,curNode、curNode.next。若 curNode 与 curNode.next 值相等,则证明为重复数字,curNode.next 指向下一节点;若值不同则证明不是重复数组,curNode 指向下一节点。

代码:

class Solution {
    func deleteDuplicates(_ head: ListNode?) -> ListNode? {
        var curNode = head
        while curNode != nil && curNode?.next != nil {
            if curNode?.val == curNode?.next?.val {
                curNode?.next = curNode?.next?.next
            } else {
                curNode = curNode?.next
            }
        }
        return head
    }
}