新开家政如何做网站,北京网站优化,公司网站建设的目的,旅游门户网站模板目录 一、题目二、解法完整代码 一、题目
给定一个已排序的链表的头 head #xff0c; 删除原始链表中所有重复数字的节点#xff0c;只留下不同的数字 。返回 已排序的链表 。
示例 1#xff1a;
输入#xff1a;head [1,2,3,3,4,4,5] 输出#xff1a;[1,2,5] 示例 … 目录 一、题目二、解法完整代码 一、题目
给定一个已排序的链表的头 head 删除原始链表中所有重复数字的节点只留下不同的数字 。返回 已排序的链表 。
示例 1
输入head [1,2,3,3,4,4,5] 输出[1,2,5] 示例 2
输入head [1,1,1,2,3] 输出[2,3]
提示
链表中节点数目在范围 [0, 300] 内 -100 Node.val 100 题目数据保证链表已经按升序 排列 二、解法
先遍历一边链表利用哈希表记录每个数字出现了多少次 然后再遍历一边跳过哪些所有出现次数超过1的节点 完整代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val0, nextNone):
# self.val val
# self.next next
class Solution:def deleteDuplicates(self, head: Optional[ListNode]) - Optional[ListNode]:cur dummy ListNode()dummy.next headdic {}while cur.next:dic[cur.next.val] dic.get(cur.next.val, 0) 1cur cur.nextcur dummywhile cur and cur.next:while cur and cur.next and dic[cur.next.val] 1:cur.next cur.next.nextcur cur.nextreturn dummy.next