python两个递增有序单链表求差集,并写出代码
时间: 2024-03-13 20:17:56 浏览: 134
Python 两个列表的差集、并集和交集实现代码
以下是Python代码实现:
```
class Node:
def __init__(self, data):
self.data = data
self.next = None
def difference(list1, list2):
dummy = Node(0)
tail = dummy
p1 = list1
p2 = list2
while p1 and p2:
if p1.data < p2.data:
tail.next = p1;
p1 = p1.next
tail = tail.next
elif p1.data > p2.data:
p2 = p2.next
else:
p1 = p1.next
p2 = p2.next
while p1:
tail.next = p1;
p1 = p1.next
tail = tail.next
return dummy.next
```
其中,Node 为链表节点类,difference(list1, list2) 函数用于求两个递增有序单链表的差集。函数中的 dummy 节点和 tail 节点用于保存新链表的头和尾节点,p1 和 p2 分别指向两个输入链表的当前节点,根据两个链表的大小关系将较小的节点接入到新链表中,如果两个链表当前节点相等,则跳过。最后将剩余未处理的节点接入到新链表中并返回。
阅读全文