输入一个单向链表,对相邻的两个节点进行交换。如输入 1->2->3->4
输出 2->1->4->3
思路:
在开始时在链表头部建立一个额外的辅助节点,用 p
指向它。对每一对链表节点,用 q
标记出来保护引用位置不至于丢失。之后交换两个节点和相应的连接即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Solution(object): def swapPairs(self, head): """ :type head: ListNode :rtype: ListNode """ if head is None or head.next is None: return head placeHolder=ListNode(0) placeHolder.next=head p=placeHolder
while p.next and p.next.next: q=p.next.next p.next.next=q.next q.next=p.next p.next=q p=p.next.next return placeHolder.next
|