leetcode--删除排序链表中的重复元素--python
2019-04-15 15:46
781 查看
文章目录
题目
题目详情
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例
输入: 1->1->2 输出: 1->2
输入: 1->1->2->3->3 输出: 1->2->3
解题代码
思路
- 我们需要删除的是一个排序的链表里重复的值
- 那么就需要两个指针来进行遍历,那么遍历完成的一个条件就是p1.next == None
- 前面的两个指针可以简化为一个指针,前后指针嘛,前一个是p1,那么后一个就是p1.next。
- 需要注意的点是需要判断删除节点为最后一个节点的话,要注意删除后,指针最后指向的是None
代码
class Solution: def deleteDuplicates(self,head): p1 = head if p1 is None:return head while p1.next is not None: if p1.val == p1.next.val: if p1.next is None: #这里就是要注意的点,要删除的节点为最后一个节点 p1.next = None else: p1.next = p1.next.next else: p1 = p1.next return head
运行结果
最佳方案
用时为44ms的一个最佳方案,给大家参考参考
class Solution: def deleteDuplicates(self, head: 'ListNode') -> 'ListNode': if head == None: return head h = head tp = head tmp = head.val head = head.next while head != None: if tmp == head.val: head = head.next tp.next = head else: tmp = head.val head = head.next tp = tp.next return h
相关文章推荐
- Leetcode 83 删除排序链表中的重复元素 Python C++ 史上最详细题解系列
- Leetcode 82 删除排序链表中的重复元素 II Python C++ 史上最详细题解系列
- LeetCode 82. 删除排序链表中的重复元素 II Python
- 【leetcode】删除排序链表中的重复元素(python实现)
- leetcode(83)—— 删除已排序链表重复元素(Remove Duplicates from Sorted List)
- Leetcode 83. 删除排序链表中的重复元素
- python_lintcode_115不同的路径 II_112删除排序链表中的重复元素
- Leetcode83. 删除排序链表中的重复元素
- [Leetcode] 83. 删除排序链表中的重复元素 java
- 【LeetCode】[83] 删除排序链表中的重复元素
- (Java) LeetCode 82. Remove Duplicates from Sorted List II —— 删除排序链表中的重复元素 II
- LeetCode刷题-删除排序链表中的重复元素
- 每日一恋 - LeetCode 82 & 83. Remove Duplicates from Sorted List(删除排序链表中的重复元素)
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- LeetCode 83. 删除排序链表中的重复元素
- [LeetCode] Remove Duplicates from Sorted List 删除排序链表中的重复元素
- 《LeetCode》83Remove Duplicates from Sorted List(删除排序链表中的重复元素)
- LeetCode 83.删除排序链表中的重复元素
- LeetCode83. 删除排序链表中的重复元素
- leetcode 83. 删除排序链表中的重复元素 (C语言版)