10.13 每日一題 24. 兩兩交換連結串列中的節點

jhaos發表於2020-10-13

給定一個連結串列,兩兩交換其中相鄰的節點,並返回交換後的連結串列。
你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。
示例:

給定 1->2->3->4, 你應該返回 2->1->4->3.

通過次數161,345 | 提交次數240,479
程式碼實現

# Definition for singly-linked list.
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
        
class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        cur = ListNode(0)
        cur.next = head
        k = cur
        while head and head.next:
            p,q = head,head.next
            k.next = q
            q.next,p.next = p, p.next.next
            head = head.next
            k = k.next.next
        return cur.next
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/swap-nodes-in-pairs
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

相關文章