解题思路:
- 最开始我想用两个指针来解决这个问题,但是显而易见把事情搞复杂,一个指针就够了
- 猜测:因为Python的自动垃圾回收机制,所以不需要去free删除节点,毕竟如果我们用C的话,删掉的链表结点是需要free的
- 当然,hash、空间换时间,应该都是具备可行性的,去记录元素出现次数就可以了
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def deleteDuplicates(self , head: ListNode) -> ListNode:
# write code here
q = head
if not q:
return None
while q.next:
if q.val == q.next.val:
q.next = q.next.next
else:
q = q.next
return head