给定一个单链表,两两交换其中相邻的节点,并返回交换后的链表。注:此题中的单链表是不带头节点的单链表
时间: 2024-05-01 10:19:45 浏览: 14
以下是 Python 代码实现:
```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 = head
second = head.next
first.next = swapPairs(second.next)
second.next = first
return second
```
解释:
我们定义一个 `ListNode` 类表示链表节点。函数 `swapPairs` 的参数是链表头节点 `head`,返回值是交换后的链表头节点。当链表为空或只有一个节点时,不需要交换,直接返回原链表头节点。否则,我们将链表分成两个节点一组,分别为 `first` 和 `second`,交换它们的位置,然后对剩余节点进行递归操作。最后返回交换后的链表头节点 `second`。