[LeetCode] 82. Remove Duplicates from Sorted List II 从分类列表中删除重复项目 II @python
2018-03-18 13:34
489 查看
Description
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1->1->2->3, return 2->3.
给定一个有序的链表,删除所有有重复数字的节点,只保留原始列表中唯一的数字。
例如: 给定 1->2->3->3->4->4->5 ,则返回 1->2->5 给定 1->1->1->2->3 ,则返回 2->3
Solution
本题使用双指针,pre 和 cur, pre指向表头。只有当pre的指向与cur的指向不同时,pre才移动到cur的指向,碰到重复的项目,则cur移动一位,直到两个指针指向不同。注意当pre.next == cur的情况。
# -*- coding: utf-8 -*- """ Created on Sun Mar 18 10:10:07 2018 @author: Saul """ # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def deleteDuplicates(self, head): """ :type head: ListNode :rtype: ListNode """ if head == None or head.next == None: return head dummy = ListNode(0) dummy.next = head pre = dummy cur = head while cur: while cur.next and pre.next.val == cur.next.val: cur = cur.next if pre.next == cur: # think about this pre = pre.next else: pre.next = cur.next # and this cur = cur.next return dummy.next
相关文章推荐
- LeetCode Remove Duplicates from Sorted Array II 删除整型数组中的重复元素并返回剩下元素个数2
- Python3基础 set 删除列表中的重复项
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- Python删除列表中重复的元素
- LeetCode | Remove Duplicates from Sorted List II(删除链表中重复结点2)
- leetcode——Remove Duplicates from Sorted List II 删除排序字符串中重复字符(AC)
- leetcode-82. Remove Duplicates from Sorted List II(删除有序列表中所有重复元素一个不留)
- python_lintcode_115不同的路径 II_112删除排序链表中的重复元素
- Python 删除列表中的重复数据
- Python删除列表重复数据以及效率问题
- python删除列表中重复记录的方法
- LeetCode 分类练习(1)—— 在数组中移动指定元素、删除指定元素、删除重复元素
- Python删除列表中重复元素
- LeetCode | Remove Duplicates from Sorted Array II(删除重复的元素2)
- [Leetcode] Remove duplicates from sorted array ii 从已排序的数组中删除重复元素
- leetCode 80.Remove Duplicates from Sorted Array II (删除排序数组中的重复II) 解题思路和方法
- LeetCode 从排序好的列表中删除重复元素
- Leetcode Remove Duplicates from Sorted List II 删除链表中重复的元素II
- Python 删除列表中的重复数据
- LeetCode: Remove Duplicates from Sorted Array II(在排序数组中删除重复元素)