【鏈表 - LeetCode】24. 兩兩交換鏈表中的節點

24. 兩兩交換鏈表中的節點 - 力扣(LeetCode)

題解:

- 迭代

首先是直接遍歷的做法,這里注意調整指針指向的順序。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode * dummyHead = new ListNode(0);dummyHead -> next = head;ListNode * tmp = dummyHead;ListNode*first, *second; // 反轉前后用到的臨時節點while(tmp->next!=nullptr && tmp->next->next!=nullptr){first = tmp->next;second = tmp->next->next;// 先調整tmp,再調整 first,再調整 secondtmp -> next = second;first -> next = second -> next;second -> next = first;tmp = first;}ListNode * ans = dummyHead -> next;delete dummyHead;return ans;}
};

- 遞歸

遞歸的本質在于直接處理最小子集。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* swapPairs(ListNode* head) {if(head == nullptr || head -> next == nullptr){return head;}ListNode *newHead = head -> next;head -> next = swapPairs(newHead -> next);newHead -> next = head;return newHead;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94074.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94074.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94074.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

爬蟲基礎學習-鏈接協議分析,熟悉相關函數

1、urlparse:(python標準庫中的一個模塊,解析和操作url)標準的url鏈接格式:scheme://netloc/path;params?query#fragmentscheme(協議) http or https netloc(網絡位置) …

kkfileview預覽Excel文件去掉左上角的跳轉HTML預覽、打印按鈕

上篇說了使用nginx代理kkfile預覽文件,但是又發現個新問題,預覽其他文件時都正常,但是預覽.xlsx格式的時候,在左上角會有【跳轉HTML預覽】【打印】兩個按鈕,如下所示:這篇就來說一下如何去掉。首先這個跟kk…

阿里開源新AI code工具:qoder功能介紹

下載地址: https://qoder.com/ 文檔地址: https://docs.qoder.com/ 文章目錄1. AI 編碼發展趨勢2. 真實世界軟件開發的挑戰3. 我們的方法3.1. 透明度3.1.1. 知識可見性3.1.2. 執行透明度3.2. 增強上下文工程3.3. 規范驅動與任務委托3.3.1. 聊天模式&…

什么是短視頻矩陣系統企業立項功能源碼開發,支持OEM

短視頻矩陣系統企業立項功能源碼開發解析在短視頻行業蓬勃發展的當下,企業紛紛布局短視頻矩陣,以實現多平臺、多賬號的協同運營。而企業立項作為短視頻矩陣項目啟動的關鍵環節,其高效、規范的管理直接影響項目的推進效率與成果。為此&#xf…

當GitHub宕機時,我們如何協作?

問題背景與影響 GitHub作為主流代碼托管平臺的依賴現狀宕機對分布式團隊、CI/CD流水線、緊急修復的影響案例其他類似平臺(GitLab、Bitbucket)的潛在連帶風險 本地與離線協作方案 利用Git分布式特性:本地倉庫繼續提交,恢復后同步搭…

【會議跟蹤】Model-Based Systems Engineering (MBSE) in Practice 2025

會議主旨與議題 會議宣傳鏈接:https://www.sei.cmu.edu/events/mbse-in-practice/ 本次會議將于2025年8月21日位美國弗吉尼亞州阿靈頓(五角大樓所在地)舉行。本次會議主旨為 MBSE in Practice: Bridging the Gap Between Theory and Success(2025)。隨著軟件定義系統日趨…

瀏覽器的渲染流程:從 HTML 到屏幕顯示

在我們日常使用瀏覽器瀏覽網頁時,往往忽略了瀏覽器背后復雜的渲染過程。從輸入 URL 到頁面最終顯示在屏幕上,瀏覽器需要經過一系列精心設計的步驟。 瀏覽器渲染的整體流程瀏覽器的渲染流程可以大致分為兩個主要部分:網絡 和 渲染。當用戶在地…

FastMCP 客戶端服務器通信示例:從入門到實戰(STDIO 傳輸)

引言 在現代分布式系統和AI應用中,模型上下文協議(MCP)扮演著重要角色,它負責協調客戶端與服務器之間的通信,尤其是在需要頻繁交互的場景中。本文將介紹如何使用FastMCP庫快速實現客戶端與服務器之間的通信&#xff0c…

寶可夢肉鴿 PC/手機雙端 多種存檔 全閃光 無限金幣 全寶可夢解鎖 免安裝中文版

網盤鏈接: 寶可夢肉鴿 免安裝中文版 名稱:寶可夢肉鴿 PC/手機雙端 多種存檔 全閃光 無限金幣 全寶可夢解鎖 免安裝中文版 描述:寶可夢肉鴿修改版是一款非常受歡迎的口袋妖怪系列,游戲擁有許多獨特的妖怪和玩法。在游戲中&#…

Linux 下的網絡編程

1、目的實現不同主機上進程間的通信。2、問題主機與主機之間在物理層面必須互聯互通。進程與進程在軟件層面必須互聯互通。IP地址:計算機的軟件地址,用來標識計算機設備。MAC地址:計算機的硬件地址(固定)。網絡的端口號…

Go語言在邊緣計算中的網絡編程實踐:從入門到精通

一、引言 在數字化浪潮席卷全球的今天,邊緣計算如同一股清流,正在重新定義我們對網絡架構的理解。想象一下,當你在自動駕駛汽車中需要毫秒級響應,或者在偏遠工廠中需要實時處理傳感器數據時,傳統的云計算模式就像是&qu…

ASPICE過程能力確定——度量框架

🚗【汽車人必看】ASPICE能力評估核心:度量框架全解析|90%工程師都搞不懂的評分規則!🔍 為什么你的ASPICE評估總卡在L2?——揭秘6大能力等級背后的評分邏輯,附提升秘籍!🔥…

機器學習在量化中的應用

一、核心應用場景在因子研究中,scikit-learn 主要解決以下幾類問題:因子預處理與標準化:StandardScaler, RobustScaler因子有效性分析:LinearRegression (IC分析)降維與因子合成:PCA, FactorAnalysis機器學習預測模型&…

RabbitMQ:消息轉化器

目錄一、基本概述二、如何處理一、基本概述 在RabbitMQ中,一般情況下傳遞字符串會被正常解析,如果傳遞的是一個Object類型或者是一個對象類型的時候,RabbitMQ會將其自動轉化為字節碼發送,這不利于我們的讀取個解析。 二、如何處…

【Protues仿真】基于AT89C52單片機的LCD液晶顯示屏顯示控制

目錄 1 LM016L液晶顯示模塊 1.1 基本參數 1.2 引腳定義 1.3硬件連接示例(AT89C52) 1.4 常用指令集(HD44780 子集) 1.5 常見問題與注意事項 1.8 結論 2 LM016L液晶顯示模塊控制電路原理圖 3 LM016L液晶顯示模塊控制程序 …

孤獨傷感視頻素材哪里找?分享熱門傷感短視頻素材資源網站

你是不是也經常在抖音上刷到很火的傷感視頻,那么傷感視頻素材都在哪里可以下載呢?作為一名從業多年的視頻剪輯師,今天就跟大家聊聊那些可以下載傷感素材高清無水印的網站,如果你也在苦苦找尋傷感素材,快來看看吧&#…

筆記本怎么才能更快散熱?

一、“物理降溫法”??? 墊高高!別讓底部 “窒息”?筆記本底部全是進風口,放床上 / 沙發上會被堵住!墊點東西拉開底部空間,高度 1-2cm。??? 給風扇 “松綁”?按「CtrlShiftEsc」打開任務管理器,點 “進程”&…

電機驅動實現插補算法之脈沖和方向接收(以stm32主控為例)

一、方案 A(推薦):編碼器模式吃脈沖(TI1 STEP,TI2 DIR) 核心思路 把定時器設為 Encoder TI1 模式:每個 STEP 上升沿計一次,在那個沿的瞬間用 TI2(DIR)的電…

[特殊字符] 潛入深淵:探索 Linux 內核源碼的奇幻之旅與生存指南

文章目錄 朋友們,敲黑板!!!(超級重要)我們今天聊點硬核的——不是普通的代碼,而是驅動了整個數字世界心跳的Linux內核源代碼!它藏在哪?就在那個傳奇倉庫:torv…

如何監控和管理微服務之間的調用關系

監控和管理微服務之間的調用關系需要結合分布式追蹤、服務依賴分析、實時監控和可視化工具,以實現對調用鏈路的可見性、問題定位和性能優化。以下是具體的實現方案和工具鏈:一、核心監控目標調用鏈路可視化:展示服務間的調用關系、方向和頻率…