📅  最后修改于: 2023-12-03 14:56:20.597000             🧑  作者: Mango
这是一个用于对给定链表的元素进行成对交换的Python程序。它将链表中相邻的两个节点进行交换,将第一个节点作为交换后的第二个节点的前置节点,返回交换后的链表。
# 节点类定义
class ListNode:
def __init__(self, value=0, next=None):
self.value = value
self.next = next
# 成对交换链表中的元素
def swap_pairs(head):
# 如果链表为空或只有一个节点,则直接返回
if not head or not head.next:
return head
# 新建一个哑节点dummy并将其指向头节点,以便处理第一对节点
dummy = ListNode(0)
dummy.next = head
prev_node = dummy
while head and head.next:
# 保存下一对节点的头节点
next_pair = head.next.next
# 将第一个节点和第二个节点进行交换
temp = head.next
head.next = next_pair
temp.next = head
# 更新前置节点的指针
prev_node.next = temp
# 更新头节点和前置节点的指针
head = next_pair
prev_node = temp.next
return dummy.next
# 测试代码
if __name__ == "__main__":
# 创建一个测试链表: 1->2->3->4->None
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(4)
print("原始链表:")
current = head
while current:
print(current.value, end=" ")
current = current.next
# 成对交换链表的元素
new_head = swap_pairs(head)
print("\n交换后的链表:")
current = new_head
while current:
print(current.value, end=" ")
current = current.next
原始链表:
1 2 3 4
交换后的链表:
2 1 4 3
以上就是用于对给定链表的元素进行成对交换的Python程序的介绍和示例代码。你可以根据实际情况使用该程序对链表中的元素进行成对交换。