两两交换链表中的节点完整代码
时间: 2024-12-12 19:02:02 AIGC 浏览: 53
在Python中,我们可以使用递归的方式来实现两个单向链表节点的两两交换。这里提供一个基础的示例代码,假设我们有两个链表节点`ListNode`结构如下:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def swapPairs(head: ListNode) -> ListNode:
if not head or not head.next:
return head
# 使用双指针法,第一个指针每次走两步,第二个指针每次走一步
first, second = head, head.next
first.next = second.next # 第一次交换
second.next = first # 更新second的next指向
# 递归处理剩下的部分,如果first还有剩余,则继续
if first.next:
first.next = swapPairs(first.next)
return second # 返回新的头节点
```
这个函数首先检查链表是否为空或者只有一个元素,如果是则直接返回。然后创建两个指针`first`和`second`,`first`每次前进两个节点,`second`每次前进一个节点。当`first`到达链表末尾时,整个链表就完成了交换。
阅读全文
相关推荐



















