(鏈表)24. 兩兩交換鏈表中的節點

給你一個鏈表,兩兩交換其中相鄰的節點,并返回交換后鏈表的頭節點。你必須在不修改節點內部的值的情況下完成本題(即,只能進行節點交換)。


示例 1:

輸入:head = [1,2,3,4]
輸出:[2,1,4,3]

示例 2:

輸入:head = []
輸出:[]

示例 3:

輸入:head = [1]
輸出:[1]

提示:

  • 鏈表中節點的數目在范圍?[0, 100]?內
  • 0 <= Node.val <= 100

代碼:

/*** 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 *cur = dummyhead;while(cur->next != nullptr && cur->next->next != nullptr){ListNode *temp1 = cur->next;ListNode *temp2 = cur->next->next->next;cur->next = cur->next->next;cur->next->next = temp1;temp1->next = temp2;cur = cur->next->next;}head = dummyhead->next;delete dummyhead;return head;
}
};

解題思路:

(1)設置虛擬頭節點,防止頭部的判斷。

(2)設置臨時節點,保存暫時不被指向的節點。

(3)以第一輪為例,首先,將虛擬頭節點指向第二個節點。接著,將第二個節點指向第一個節點。最后,將第一個節點指向第三個節點。

(4)兩兩向后遍歷。

(5)鏈表就是指向的游戲,注意虛擬頭節點,以及臨時節點的保存

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

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

相關文章

吳恩達機器學習筆記復盤(三)Jupyter NoteBook

Jupyter NoteBook Jupyter是一個開源的交互式計算環境&#xff1a; 特點 交互式編程&#xff1a;支持以單元格為單位編寫和運行代碼&#xff0c;用戶可以實時看到代碼的執行結果&#xff0c;便于逐步調試和理解代碼邏輯。多語言支持&#xff1a;不僅支持Python&#xff0c;還…

【Linux】從互斥原理到C++ RAII封裝實踐

&#x1f4e2;博客主頁&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01; &#x1f4e2;本文由 JohnKi 原創&#xff0c;首發于 CSDN&#x1f649; &#x1f4e2;未來很長&#…

微服務無狀態服務設計

微服務無狀態服務設計是構建高可用、高擴展性系統的核心方法。 一、核心設計原則 請求獨立性 每個請求必須攜帶完整的上下文信息&#xff0c;服務不依賴本地存儲的會話或用戶數據。例如用戶認證通過JWT傳遞所有必要信息&#xff0c;而非依賴服務端Session。 狀態外置化 將會話…

30、map 和 unordered_map的區別和實現機制【高頻】

底層結構 map底層是紅黑樹結構&#xff0c;而unordered_map底層是哈希結構; 有序性 但是紅黑樹其實是一種二叉搜索樹&#xff0c;插入刪除時會自動排序hash因為是把數據映射到數組上的&#xff0c;而且存在哈希沖突&#xff0c;所以不能保證有序存儲 所以有序存儲使用map&a…

大數據-spark3.5安裝部署之local模式

spark&#xff0c;一個數據處理框架和計算引擎。 下載 local模式即本地模式&#xff0c;就是不需要任何其他節點資源就可以在本地執行spark代碼的環境。用于練習演示。 上傳解壓 使用PortX將文件上傳至/opt 進入/opt目錄&#xff0c;創建目錄module&#xff0c;解壓文件至/o…

Manus “Less structure,More intelligence ”獨行云端處理器

根據市場調研機構Statista數據顯示&#xff0c;全球的AR/AR的市場規模預計目前將達到2500億美元&#xff0c;Manus作為VR手套領域的領軍企業&#xff0c;足以顛覆你的認知。本篇文章將帶你解讀Manus產品&#xff0c;針對用戶提出的種種問題&#xff0c;Manus又將如何解決且讓使…

Oracle數據庫存儲結構--邏輯存儲結構

數據庫存儲結構&#xff1a;分為物理存儲結構和邏輯存儲結構。 物理存儲結構&#xff1a;操作系統層面如何組織和管理數據 邏輯存儲結構&#xff1a;Oracle數據庫內部數據組織和管理數據&#xff0c;數據庫管理系統層面如何組織和管理數據 Oracle邏輯存儲結構 數據庫的邏…

芯驛電子 ALINX 亮相德國紐倫堡,Embedded World 2025 精彩回顧

2025年3月13日&#xff0c;全球規模最大的嵌入式行業盛會——德國紐倫堡國際嵌入式展&#xff08;embedded world 2025&#xff09;圓滿落幕。 在這場匯聚全球 950 家展商、3 萬余專業觀眾的科技盛宴中&#xff0c;芯驛電子 ALINX 展位人頭攢動&#xff0c;多款尖端產品吸引客戶…

Nexus File類型Blob Stores遷移至Minio操作指南(上)

#作者&#xff1a;閆乾苓 文章目錄 目的前期準備查看file類型Blob Stores數據目錄位置aws cli客戶端連接工具OrientDB cli客戶端連接工具在minio中新建 bucket 目的 增強nexus構件數據的高可用性和擴展性 前期準備 查看并記錄需要遷移的Blob Store及repository 查看fil…

藍橋杯嵌入式組第十二屆省賽題目解析+STM32G431RBT6實現源碼

文章目錄 1.題目解析1.1 分而治之&#xff0c;藕斷絲連1.2 模塊化思維導圖1.3 模塊解析1.3.1 KEY模塊1.3.2 LED模塊1.3.3 LCD模塊1.3.4 TIM模塊1.3.5 UART模塊1.3.5.1 uart數據解析 2.源碼3.第十二屆題目 前言&#xff1a;STM32G431RBT6實現嵌入式組第十二屆題目解析源碼&#…

【MySQL】表的約束(上)

文章目錄 表的約束什么是表的約束空屬性默認值列描述&#xff08;comment&#xff09;零填充&#xff08;zerofill&#xff09;主鍵 總結 表的約束 什么是表的約束 表的約束&#xff08;Constraints&#xff09;是數據庫表中的規則&#xff0c;用于限制存儲的數據&#xff0c…

【Unity網絡同步框架 - Nakama研究(三)】

文章目錄 【Unity網絡同步框架 - Nakama研究(三)】準備工作前言Unity部分連接服務器創建并進入房間創建人物人物移動和同步 【Unity網絡同步框架 - Nakama研究(三)】 以下部分需要有一定的Unity基礎&#xff0c;在官方的案例Pirate Panic基礎上進行修改而成。如果沒有下載并熟悉…

前端存儲-indexdb封裝:dexie.js的使用

前言 indexedDB是一個用于在瀏覽器中存儲較大數據結構的Web API&#xff0c;并且提供了索引功能以實現高性能查找。dexie.js是對indexdb的封裝&#xff0c;前端用起來很方便。在此介紹一下項目中用到的操作語句&#xff0c;也方便記錄。我的項目是vue3項目。 開始 1、安裝 …

【AD】6-1 PCB常用規則

間距規則&#xff1a; 可自行修改線寬與間距&#xff08;默認10mil&#xff09; 線寬規則&#xff1a;電源線寬加粗 布線過程中更改線寬&#xff1a;走線狀態下&#xff0c;shiftw更改線寬&#xff0c;線寬要在規則范圍之內過孔規則&#xff1a; 阻焊規則&#xff1a;

MyBatis 的核心配置文件是干什么的? 它的結構是怎樣的? 哪些是必須配置的,哪些是可選的?

MyBatis 的核心配置文件&#xff08;通常命名為 mybatis-config.xml&#xff09;是 MyBatis 應用程序的入口點&#xff0c;它定義了 MyBatis 的全局配置信息 。 核心配置文件的作用&#xff1a; 配置 MyBatis 的運行時行為: 通過 <settings> 標簽設置全局參數&#xff…

搜廣推校招面經四十九

tiktok廣告算法 一、倒排索引原理及Map中Key的處理 具體使用方法見【搜廣推校招面經三十六】 倒排索引&#xff08;Inverted Index&#xff09;是信息檢索系統中常用的一種數據結構&#xff0c;用于快速查找包含某個關鍵詞的文檔。以下是倒排索引的原理及Map中Key的處理方式的…

【零基礎入門unity游戲開發——unity3D篇】3D物理系統之 —— 3D剛體組件Rigidbody

考慮到每個人基礎可能不一樣,且并不是所有人都有同時做2D、3D開發的需求,所以我把 【零基礎入門unity游戲開發】 分為成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要講解C#的基礎語法,包括變量、數據類型、運算符、流程控制、面向對象等,適合沒有編程基礎的…

C# net deepseek RAG AI開發 全流程 介紹

deepseek本地部署教程及net開發對接 步驟詳解&#xff1a;安裝教程及net開發對接全流程介紹 DeepSeekRAG 中的 RAG&#xff0c;全稱是 Retrieval-Augmented Generation&#xff08;檢索增強生成&#xff09;&#xff0c;是一種結合外部知識庫檢索與大模型生成能力的技術架構。其…

用舊的手機搭建 MQTT Broker

MQTT Broker搭建 在Android上搭建MQTT所需工具: termux 通過網盤分享的文件:termux-app_v0.118.1+github-debug_armeabi-v7a.apk 鏈接: https://pan.baidu.com/s/1Iii2szXAc02cKVGdP1EuzQ?pwd=fqsc 提取碼: fqsc 在 Termux 中使用 MQTT(Message Queuing Telemetry Trans…

b站視頻下載工具軟件怎么下載

自行配置FFMPEG環境 請優先選擇批量下載&#xff0c;會自處理視頻和音頻文件。 如果要下載更高質量請登陸。 沒有配置FFMPEG下載后會有報錯提示&#xff0c;視頻音頻文件無法合并生成mp4文件 更新批量下載標題&#xff0c;只取視頻原標題&#xff0c;B站反爬機制登陸后下載多了…