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

示例

输入:head = [1,1,2,3,3]

输出:[1,2,3]

解析

1)链表结构的问题,本质就是找当前节点和下一个节点的关系问题;

2)删除重复元素,其实就是让下一个节点和当前节点的值不一样;

3)所以只需要在循环中,判断当前节点的值和下一个节点的值是否相等;

4)如果不相等,则当前节点后移,如果相等,则 next 后移即可。

代码示例

def deleteDuplicates(head):
    cur = head
    while cur and cur.next != None:
        if cur.val == cur.next.val:
            cur.next = cur.next.next
        else:
            cur = cur.next
    return head

执行用时:32 ms, 在所有 Python3 提交中击败了 99.44% 的用户.

本文为 陈华 原创,欢迎转载,但请注明出处:http://ichenhua.cn/read/366