23. Leetcode 24. 两两交换链表中的节点 (链表-基础操作类-交换链表)
生活随笔
收集整理的這篇文章主要介紹了
23. Leetcode 24. 两两交换链表中的节点 (链表-基础操作类-交换链表)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個鏈表,兩兩交換其中相鄰的節點,并返回交換后鏈表的頭節點。你必須在不修改節點內部的值的情況下完成本題(即,只能進行節點交換)。示例 1:輸入:head = [1,2,3,4]
輸出:[2,1,4,3]
示例 2:輸入:head = []
輸出:[]
示例 3:輸入:head = [1]
輸出:[1]思路:首先建立一個 dummy 為頭節點,它的 next 指向 head。為了保證 節點不丟失,一共設置了 pre、a、b 三個指針,然后更新指針, 完成交換。這里迭代的終止條件是 pre.next 為空或 pre.next.next 節點為空(說明后面的節點不到兩個,無需交換)。# 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:# 創建頭節點dummpy = ListNode(0)dummpy.next = headpre = dummpya = dummpyb = dummpy# 終止判斷條件,后兩個數不為空while pre.next != None and pre.next.next != None:a = pre.nextb = pre.next.nextpre.next = ba.next = b.nextb.next = apre = pre.next.nextreturn dummpy.next
總結
以上是生活随笔為你收集整理的23. Leetcode 24. 两两交换链表中的节点 (链表-基础操作类-交换链表)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 23. Leetcode 86. 分隔链
- 下一篇: 24. Leetcode 61. 旋转链