leetcode-83 | 删除排序链表中的重复元素

题目描述

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

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

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

思路

指针扫描一遍即可

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def deleteDuplicates(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if head==None:
            return head
        #定义指针cur, p
        cur = head
        p = cur.next
        while p:
            #判断是否相等
            if p.val==cur.val:
                #q是临时指针变量
                q = p.next
                cur.next = q
                p = q
            else:
                cur = cur.next
                p = p.next
        return head

结果:

执行用时 : 40 ms, 在Remove Duplicates from Sorted List的Python提交中击败了99.64% 的用户
内存消耗 : 11.8 MB, 在Remove Duplicates from Sorted List的Python提交中击败了29.12% 的用户

提交时间状态执行用时内存消耗语言
几秒前通过40 ms11.8MBpython

   Reprint policy


《leetcode-83 | 删除排序链表中的重复元素》 by 梦否 is licensed under a Creative Commons Attribution 4.0 International License
 Previous
leetcode-86 | 分隔链表 leetcode-86 | 分隔链表
题目描述给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例 1:输入: head = 1->4->3->2->
2019-05-04
Next 
leetcode-92 | 反转链表II leetcode-92 | 反转链表II
题目描述反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4
2019-05-03
  TOC