拉链表去除空值和重复值
时间: 2023-08-06 09:02:31 浏览: 107
链表的拉链操作是将两个链表的节点依次相互配对,形成一个新的链表。而链表去除空值和重复值的实现方法如下:
1. 去除空值:遍历链表,判断节点值是否为空,若为空则将该节点从链表中删除。
2. 去除重复值:遍历链表,使用一个集合存储已经遍历过的节点值,若后续节点的值已经存在于集合中,则将该节点从链表中删除。
代码实现如下:
```python
class Node:
def __init__(self, val=None):
self.val = val
self.next = None
def remove_empty_and_duplicate(head):
# 去除空值
while head and head.val is None:
head = head.next
p = head
while p:
if p.next and p.next.val is None:
p.next = p.next.next
else:
p = p.next
# 去除重复值
value_set = set()
p = head
value_set.add(p.val)
while p.next:
if p.next.val in value_set:
p.next = p.next.next
else:
value_set.add(p.next.val)
p = p.next
return head
```
其中,remove_empty_and_duplicate函数接受一个链表的头节点,返回去除空值和重复值后的链表的头节点。该函数首先去除空值,然后使用一个集合存储已经遍历过的节点值,去除重复值。最后返回去除空值和重复值后的链表的头节点。
阅读全文