Python中链表的删除排序链表中的重复元素
链表删除排序链表中的重复元素可以通过遍历链表,判断相邻节点的值是否相同,如果相同,则删除其中一个节点,继续遍历下一个节点,直到遍历完整个链表。实现的代码如下:
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def deleteDuplicates(head: ListNode) -> ListNode: if not head: return head cur = head while cur.next: if cur.val == cur.next.val: cur.next = cur.next.next else: cur = cur.next return head
为了演示该函数的使用,我们可以创建一个链表,并输出删除重复节点后的链表:
head = ListNode(1) node1 = ListNode(1) node2 = ListNode(2) node3 = ListNode(2) node4 = ListNode(3) head.next = node1 node1.next = node2 node2.next = node3 node3.next = node4 new_head = deleteDuplicates(head) while new_head: print(new_head.val) new_head = new_head.next
输出结果为:
1 2 3
可见,重复的节点已被删除,链表顺序保持不变。
相关文章