Leetcode刷題筆記題解(C++):92. 反轉鏈表 II

思路:獲取要反轉的區間,拆開之后進行反轉再拼接

/*** 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* reverseBetween(ListNode* head, int m, int n) {// write code here   ListNode* temp = new ListNode(0);temp->next = head;ListNode* left = temp;//left為前段不反轉的最后一個節點for(int i = 0; i<m-1; i++){left = left->next;}ListNode* right = left;//right為反轉區間的最后一個節點for(int i = 0; i<n-m+1; i++){right = right->next;}//leftNode為反轉區間的第一個節點ListNode *leftNode = left->next;//RightNode為后段不反轉區間的第一個節點ListNode *RightNode  = right->next;//前段不反轉的最后一個節點之后斷開left->next = nullptr;//后段不反轉的第一個節點之前斷開right->next = nullptr;//對反轉區間進行反轉之后,leftNode為最后一個節點,right為第一個節點ReverseList(leftNode);left->next = right;leftNode->next = RightNode;return temp->next;}void ReverseList(ListNode* head){ListNode* ret = nullptr;ListNode* temp = nullptr;ListNode* result = head;while(result){temp = result->next;result->next = ret;ret = result;result = temp;}}};

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

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

相關文章

【Linux】stat命令使用

stat命令 stat命令用于顯示文件的狀態信息。stat命令的輸出信息比ls命令的輸出信息要更詳細。 著者 由Michael Meskes撰寫。 stat命令 -Linux手冊頁 語法 stat [文件或目錄] 命令選項及作用 執行令 &#xff1a; stat --help 執行命令結果 參數 -L、 --dereference 跟…

【C++】多線程(三)

還是接著講多線程&#xff0c;照例&#xff0c;可以先看上一篇文章。 我們再次回顧一下上次編寫的使用async的多線程程序&#xff1a; int main() {async([]{ cout << "Maybe a new thread?" << endl; });cout << "Yeah, u r right!"…

力扣375周賽

力扣第375場周賽 統計已測試設備 差分數組優化 class Solution { public:int countTestedDevices(vector<int> &batteryPercentages) {int dec 0;for (int x : batteryPercentages) {dec x > dec;}return dec;} };雙模冪運算 快速冪模擬 class Solution { …

Star CCM+ 停止并保存用命令行運行的計算

在 StarCCM 命令行運行 中介紹了命令行運行計算的方法&#xff0c;有網友詢問停止計算的命令&#xff0c;但計算一旦提交之后應該是不能用命令結束的&#xff0c;除非是用 kill 或任務管理器直接結束進程。然而&#xff0c;直接結束進程不會自動保存計算結果。 問題 通常情況下…

lv12 系統移植導學 1

1 導學 Kernel學習主要包括三塊內容&#xff0c;ARM&#xff08;匯編、協議&#xff09;、系統移植、驅動移植 lv12主要時安裝系統linux linux主要幫我們實現了5大功能 1 進程、線程管理 2 內存管理 3 網絡協議棧管理 4 文件系統管理 5 設備管理 2 移植的目的 不同架構…

從零開始搭建鏈上dex自動化價差套利程序(12)

其他品種 擴展到其他幣種的價差套利 1.eth 新建文件get_depth_data_eth.py import asyncio from apexpro.http_public import HttpPublic from dydx3 import Client from dydx3.constants import MARKET_ETH_USD# 定義交易對列表 symbol ETHUSDC market MARKET_ETH_USD# …

vue創建時長時間卡頓無結果

vue創建時長時間卡頓無結果 01 發生場景 當我在VS code中使用vue create myVue &#xff08;注&#xff1a;最后一個是我創建的vue項目的文件名&#xff09;指令時在終端內長時間的無反應 02 問題的產生及其原因 經過面向百度編程&#xff0c;得出的第一結論是vue/cil版本過…

【數據結構】——排序篇(下)

前言&#xff1a;前面我們的排序已經詳細的講解了一系列的方法&#xff0c;那么我們現在久之后一個歸并排序了&#xff0c;所以我們現在就來講解一下歸并排序。 歸并排序&#xff1a; 歸并排序&#xff08;MERGE-SORT&#xff09;是建立在歸并操作上的一種有效的排序算法,該算法…

代碼隨想錄二刷 |二叉樹 | 二叉樹的右視圖

代碼隨想錄二刷 &#xff5c;二叉樹 &#xff5c; 二叉樹的右視圖 題目描述解題思路代碼實現 題目描述 199.二叉樹的右視圖 給定一個二叉樹的 根節點 root&#xff0c;想象自己站在它的右側&#xff0c;按照從頂部到底部的順序&#xff0c;返回從右側所能看到的節點值。 示例…

?My學習Linux命令小記錄(15)?

目錄 ?My學習Linux命令小記錄&#xff08;15&#xff09;? 61.history指令 62.apt指令 ①apt-get ②apt-key&#xff1a; ③apt-sortpkgs&#xff1a; ④aptitude&#xff1a; 63.yum指令 64.cal指令 65.init指令 ?My學習Linux命令小記錄&#xff08;15&#xff0…

表格的介紹與實戰(詳細且有案例)

目錄?????????????? 表格的主要作用&#xff1a; 表格的基本語法&#xff1a; 表格相關的標簽 合并單元格&#xff1a; 實戰&#xff1a; 表格的主要作用&#xff1a; 表格主要是用來展示數據的&#xff0c;使用表格來展示數據&#xff0c;數據可讀性更好…

202301209將RK3399的挖掘機開發板在Android10下設置系統默認為24小時制

202301209將RK3399的挖掘機開發板在Android10下設置系統默認為24小時制 2023/12/9 22:07 應該也可以適用于RK3399的Android12系統 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/default…

一文搞懂Lombok Plugins使用與原理

目錄 一文搞懂Lombok使用與原理 1.前言2.什么是Lombok3. IntelliJ安裝Lombok3.1通過IntelliJ的插件中心安裝3.2在項目中使用Lombok Plugins 4.Lombok 注解大全說明4.1POJO類常用注解4.2其他注解 5.Lombok常見問題6.總結7.參考 文章所屬專區 超鏈接 1.前言 2.什么是Lombok Lo…

產品創新受贊譽,懌星榮獲2023未來汽車(電子和軟件)創新創業大賽一等獎

2023未來汽車&#xff08;電子和軟件&#xff09;創新創業大賽 11月29日&#xff0c;上海臨港&#xff0c;由中國汽車工程學會和中國&#xff08;上海&#xff09;自由貿易試驗區臨港新片區管理委員會聯合舉辦的“2023未來汽車&#xff08;電子和軟件&#xff09;創新創業大賽…

二叉搜索樹中第K小的元素[中等]

優質博文&#xff1a;IT-BLOG-CN 一、題目 給定一個二叉搜索樹的根節點root&#xff0c;和一個整數k&#xff0c;請你設計一個算法查找其中第k個最小元素&#xff08;從1開始計數&#xff09;。 示例 1&#xff1a; 輸入&#xff1a;root [3,1,4,null,2], k 1 輸出&#x…

RHEL8_Linux硬盤管理

主要介紹Linux磁盤管理 了解分區的概念對硬盤進行分區常見的分區swap分區的管理 1.了解分區的概念 1&#xff09;新的硬盤首先需要對其進行分區和格式化&#xff0c;下面來了解以下硬盤的結構&#xff0c;如圖。 2&#xff09;硬盤的磁盤上有一個個圈&#xff0c;每兩個圈組…

JVM虛擬機系統性學習-類加載子系統

類加載子系統 類加載的時機 類加載的時機主要有 4 個&#xff1a; 遇到 new、getstatic、putstatic、invokestatic 這四條字節碼指令時&#xff0c;如果對應的類沒有初始化&#xff0c;則要先進行初始化 new 關鍵字創建對象時讀取或設置一個類型的靜態字段時&#xff08;被 …

javaSwing酒店管理系統

一、 使用方法&#xff1a; 在使用前&#xff0c;需要到druid.properties 配置文件中&#xff0c;修改自己對應于自己數據庫的屬性&#xff1b;如用戶名&#xff0c;密碼等 driverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql:///hotel?useUnicodetrue&characterEn…

midwayjs從零開始創建項目,連接mikro-orm框架(必須有java的springboot基礎)

前言&#xff1a; 我一直都是用java的springboot開發項目&#xff0c;然后進來新公司之后&#xff0c;公司的后端是用node.js&#xff0c;然后框架用的是 midwayjs &#xff0c;然后網上的資料比較少&#xff0c;在此特地記錄一波 文檔&#xff1a; 1.官方文檔&#xff1a;介紹…