【发布时间】:2019-06-30 04:10:50
【问题描述】:
给定一个排序链表,删除所有重复编号的节点,只留下原始列表中不同的编号。
示例 1:
Input: 1->2->3->3->4->4->5
Output: 1->2->5
示例 2:
Input: 1->1->1->2->3
Output: 2->3
我已经在大多数情况下尝试并成功地编写了我的代码,我唯一缺少的情况是列表以重复结尾并且整个过程中没有重复。
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
first = head
if first is None:
return []
second = head.next
if second is None:
return first
first.next = second
if first.val == first.next.val:
while first.val == first.next.val:
if first.next.next is None:
return []
first = first.next
return self.deleteDuplicates(first.next)
else:
first.next = self.deleteDuplicates(first.next)
return first
我得到的 [1,2,3,4,4] 错误是“AttributeError: 'list' object has no attribute 'val'”。
【问题讨论】:
-
你为什么要
return [],这是你犯错的罪魁祸首 -
天哪,这是问题,非常感谢,我确实返回了 [],因为在之前的问题中,这将是最终输出,所以很好。我将其更改为“返回”并且代码有效!
标签: python python-3.x linked-list