怎么交换链表中两个节点的位置
时间: 2024-06-14 16:03:33 浏览: 18
以下是交换链表中两个节点位置的Python实现方法:
<<引用>>:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
dummy = ListNode(0)
dummy.next = head
pre = dummy
while pre.next and pre.next.next:
a = pre.next
b = a.next
pre.next, b.next, a.next = b, a, b.next
pre = a
return dummy.next
```
<<引用>>:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def swapNodes(self, head: ListNode, v1: int, v2: int) -> ListNode:
dummy = ListNode(0)
dummy.next = head
pre = dummy
node1, node2 = None, None
while pre.next:
if pre.next.val == v1:
node1 = pre
elif pre.next.val == v2:
node2 = pre
pre = pre.next
if node1 and node2:
node1.next, node2.next = node2.next, node1.next
node1.next.next, node2.next.next = node2.next.next, node1.next.next
return dummy.next
```