题目:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 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
}
}