题目:24. 交换相邻结点
链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/description/
给定一个链表,两两交换相邻节点。比如1->2->3->4,交换结果为2->1->4->3。
用两个指针换来换去。
python:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def swapPairs(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head or not head.next:
return head
newhead=ListNode(-1)
newhead.next=head
p1,p2=newhead,newhead.next.next
while p1:
p1.next.next=p2.next
p2.next=p1.next
p1.next=p2
p1=p2.next
if not p1.next:
break
p2=p1.next.next
if not p2:
break
return newhead.next