力扣题目:给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
输入:head = [1,1,2] 输出:[1,2]
思路:设p=head;q=head.next;进行判断即可,需注意的是python中用None表示链表的空,而不是Null.
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head==None:
return head;
else:
p=head;
q=head.next;
#head=None; python中用None表示链表的空
while q:
if p.val==q.val:
q=q.next;
elif p.val!=q.val:
p.next=q;
q=q.next;
p=p.next;
print(p.val);
p.next=None;
return head;
这篇博客讲解了如何使用Python实现给定已排序链表的删除重复元素操作,通过迭代节点并对比值来简化链表。思路是利用两个指针,一个紧跟当前节点,遇到相同值跳过,不同则链接到下一个。最后返回处理后的链表头节点。

326

被折叠的 条评论
为什么被折叠?



