博客
关于我
python去掉重复的数字_leetcode删除列表的重复元素python解法
阅读量:398 次
发布时间:2019-03-05

本文共 887 字,大约阅读时间需要 2 分钟。

题目:

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现的数字。

示例 1:

输入: 1->2->3->3->4->4->5

输出: 1->2->5

示例 2:

输入: 1->1->1->2->3

输出: 2->3

先上自己的提交记录:

我太难了!!

解题思路:

1、新建虚拟头结点,这是为了解决头节点就和后面的节点重复的情况

2、使用两个指针pre、cur,pre指向虚拟头节点,cur指向虚拟头节点的next也即head,然后使用cur遍历链表,然后找到存在重复元素的值,再一个循环,使cur指向重复元素的最后一个,然后令pre.next = cur.next即删除了所有的重复元素。

3、小心while中访问空指针就行,最后返回结果

源代码如下:

# Definition for singly-linked list.

# class ListNode:

# def __init__(self, x):

# self.val = x

# self.next = None

class Solution:

def deleteDuplicates(self, head: ListNode) -> ListNode:

#if head is None or head.next is None

#if not head

dummy_head = ListNode(0)

dummy_head.next = head

pre = dummy_head

cur = head

while cur:

if cur.next and cur.val == cur.next.val:

while cur.next and cur.val == cur.next.val:

cur = cur.next

# cur.val != cur.next.val

pre.next = cur.next

cur = cur.next

continue

pre = pre.next

cur = cur.next

return dummy_head.next

转载地址:http://sdjg.baihongyu.com/

你可能感兴趣的文章
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>
multi_index_container
查看>>
MySQL DBA 进阶知识详解
查看>>
Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
查看>>
Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
查看>>
mysql deadlock found when trying to get lock暴力解决
查看>>
MuseTalk如何生成高质量视频(使用技巧)
查看>>
mutiplemap 总结
查看>>
MySQL DELETE 表别名问题
查看>>
MySQL Error Handling in Stored Procedures---转载
查看>>
MVC 区域功能
查看>>
MySQL FEDERATED 提示
查看>>
mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
查看>>
Mysql group by
查看>>
MySQL I 有福啦,窗口函数大大提高了取数的效率!
查看>>