博客
关于我
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/

你可能感兴趣的文章
mysql-connector-java.jar乱码,最新版mysql-connector-java-8.0.15.jar,如何愉快的进行JDBC操作...
查看>>
mysql-connector-java各种版本下载地址
查看>>
mysql-EXPLAIN
查看>>
MySQL-Explain的详解
查看>>
mysql-group_concat
查看>>
MySQL-redo日志
查看>>
MySQL-【1】配置
查看>>
MySQL-【4】基本操作
查看>>
Mysql-丢失更新
查看>>
Mysql-事务阻塞
查看>>
Mysql-存储引擎
查看>>
mysql-开启慢查询&所有操作记录日志
查看>>
MySQL-数据目录
查看>>
MySQL-数据页的结构
查看>>
MySQL-架构篇
查看>>
MySQL-索引的分类(聚簇索引、二级索引、联合索引)
查看>>
Mysql-触发器及创建触发器失败原因
查看>>
MySQL-连接
查看>>
mysql-递归查询(二)
查看>>
MySQL5.1安装
查看>>