【鏈表 - LeetCode】206. 反轉鏈表【帶ACM調試】

206. 反轉鏈表 - 力扣(LeetCode)

題解

迭代版本

一共三個指針,一個是記錄最開始的節點,一個是當前反轉節點,一個是下一個待反轉的節點。

記住這里是反轉,所以,針對節點來看,將當前節點 cur 指向最開始節點,即完成反轉。

然后所有指針往下走一步。

走的順序是從前往后走,即最開始節點=當前反轉節點,當前反轉節點=下一個待反轉節點。

/*** 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* reverseList(ListNode* head) {ListNode* prev = nullptr;ListNode* cur, * nxt;cur = head;while(cur){nxt = cur->next;cur->next = prev;prve = cur;cur = nxt;}return prev;}
};

反轉鏈表 ACM 版本

加了輸入輸出以及相對應的初始化部分,更方便調試一些。

#include <iostream>
#include <list>using namespace std;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 *reverseList(ListNode *head){ListNode *prev = nullptr;ListNode *cur, *nxt;cur = head;while (cur){nxt = cur->next;cur->next = prev;prev = cur;cur = nxt;}return prev;}
};int main()
{ListNode *head = nullptr, *tail = nullptr;int x, n;cin >> n;for (int i = 0; i < n; i++){cin >> x;ListNode *tmp = new ListNode(x, nullptr);if (head == nullptr){head = tail = tmp;}else{tail->next = tmp;tail = tmp;}cout << x << endl;}Solution solution;head = solution.reverseList(head);while (head){cout << head->val << " ";head = head->next;}return 0;
}

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

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

相關文章

langgraph快速搭建agent后端和react前端

官方文檔 一、后端 1.安裝基礎依賴 pip install --upgrade "langgraph-cli[inmem]"2.下載模版項目 在終端運行 langgraph new ./example --template new-langgraph-project-python這里是在當前文件夾下新建文件夾example&#xff0c;里面是下載的langgraph模版項…

第2章:幽靈協議初現

林薇的手指剛觸碰量子控制臺的“時間錨點”按鈕&#xff0c;Elysium的拓撲圖突然炸開一片猩紅。0.000001秒的延遲后&#xff0c;屏幕中央浮現出一個10KB的幽靈協議塊——它不占任何經典內存&#xff0c;卻在量子態中“呼吸”。“它在……重寫協議。”林薇的BCI接口傳來低沉的嗡…

Unity其他--【MMD】如何在Unity中制作MMD

小菲搖之前學習了在Unity中使用動畫狀態機控制人物&#xff0c;以及用Shader去對氛圍圖形進行渲染&#xff0c;然后又刷到一些MMD的視頻&#xff0c;我就想著MMD能做的事情感覺Unity應該也都能做而且更方便的吧&#xff0c;所以就嘗試做了一下。當然這里主要是記錄一下自己是怎…

從技術精英到“芯”途末路:一位工程師的沉淪與救贖

作者&#xff1a;邱戈龍、曾建萍【長昊律所】 專注于商業秘密、軟件著作權的專業型律師事務所&#xff0c;擅長民事、行政、刑事多重救濟途徑&#xff0c;為眾多科學技術領域的商業秘密、軟件著作權類案件提供侵權維權、辯護、司法鑒定、司法審計、調查取證等高品質專項法律服務…

刷題日記0824

兩眼一睜就是刷&#xff01;今日計劃5道3/5昨天遇到了幾件令人心情不好的小事&#xff0c;今天還要處理一下。一早上的好心情被小小的破壞了一下。1056. 易混淆數 簡單有思路&#xff0c;心情好。耶比耶比&#xff0c;算是一遍過&#xff0c;這次考慮很周。寫完了有一種一遍過的…

Qt c++開發中的delete QThread操作需注意

1、析構函數中&#xff0c;不能執行QEventLoop&#xff0c;會造成 重入問題&#xff1a;事件循環可能觸發其他事件&#xff0c;導致已析構的對象被再次訪問信號槽連接&#xff1a;正在析構的對象可能還有未斷開的信號槽連接未定義行為&#xff1a;對象狀態不確定&#xff0c;可…

Seaborn數據可視化實戰:Seaborn圖表定制與數據可視化入門

高級圖表定制 學習目標 通過本課程你將掌握如何使用Seaborn庫進行高級圖表定制&#xff0c;包括圖表的標題、圖例、注釋的添加&#xff0c;以及圖表布局和大小的調整。這些技能將幫助你更有效地展示數據&#xff0c;使你的數據故事更加生動和有說服力。 相關知識點 Seaborn高級…

nano命令使用方法

nano 是 Ubuntu 等 Linux 系統中常用的輕量級文本編輯器&#xff0c;輕量易用&#xff0c;特別適合適合快速編輯配置文件、腳本等。以下是其核心使用方法&#xff1a;一、基本操作&#xff1a;打開 / 創建文件bash# 打開已存在文件&#xff08;若文件不存在則創建&#xff09; …

C#_gRPC

6.3 gRPC&#xff1a;高性能跨語言服務間通信 gRPC是一個高性能、開源、通用的RPC&#xff08;Remote Procedure Call&#xff09;框架&#xff0c;由Google開發并基于其多年的內部使用經驗&#xff08;Stubby&#xff09;。它現在是Cloud Native Computing Foundation&#xf…

Ubuntu 多版本 librealsense 與 realsense_ros 編譯并兼容 L515 等設備

這篇博客用來記錄如何在 Ubuntu 下編譯多個版本的 librealsense 并使用 L515 和 D435i 等設備。核心在于 L515 這款設備已經停止維護&#xff0c;直接安裝的方案不支持這個設備&#xff0c;只支持 D435i 等后期產品。如果想要同時使用新老的 realsense 產品&#xff0c;需要單獨…

Java 泛型 T、E、K、V、?、S、U、V

目錄 一、概述 二、為什么使用泛型 三、常見泛型類型參數的含義與用途 示例一&#xff1a;使用 T 定義泛型類 示例二&#xff1a;使用 E 表示集合元素 示例三&#xff1a;使用 K 和 V 表示鍵值對 示例四&#xff1a;使用 ? 通配符處理未知類型 四、通配符 ? 的擴展用…

1688拍立淘接口數據全面解析詳細說明(item_search_img)

一、接口概述 1688拍立淘接口是阿里巴巴1688平臺提供的基于圖像識別的商品搜索服務&#xff0c;允許開發者通過上傳商品圖片來搜索平臺上的同款或相似商品。該接口的主要功能是接收用戶上傳的圖片&#xff08;或圖片的相關信息&#xff09;&#xff0c;并通過1688平臺的圖像識…

【Docker項目實戰】使用Docker部署輕量級LetsMarkdown文本編輯器

【Docker項目實戰】使用Docker部署輕量級Markdown文本編輯器一、LetsMarkdown介紹1.1 LetsMarkdown簡介1.2 主要特點二、本次實踐介紹2.1 本地環境規劃2.2 本次實踐介紹三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3檢查docker compose 版本四、拉取容器鏡像五…

Node.js自研ORM框架深度解析與實踐

Node.js自研ORM框架深度解析與實踐 前言 在現代Web開發中&#xff0c;對象關系映射&#xff08;ORM&#xff09;框架扮演著至關重要的角色。它們為開發者提供了一層抽象&#xff0c;使得數據庫操作變得更加簡單和直觀。本文將深入解析一個基于Node.js和MySQL的自研ORM框架&…

匯總圖片拖進ps中 photoshop同時打開幾個文件夾

如果你有許多文件夾&#xff0c;你想選中一部分&#xff0c;然后把里面的圖片全部拖進photoshop當中&#xff0c;但是文件夾又不能直接拖進去&#xff0c;那么你可以嘗試使用一下這個工具&#xff0c;首先測試一下直接拖文件夾。選中你要處理的文件夾&#xff0c;直接拖進photo…

mysql 5.7 查詢運行時間較長的sql

開發過程遇到sql 執行時間長&#xff0c;又取消不了的情況 可使用 kill query ID 殺死進程獲取正在運行的sqlSELECT ID, -- 進程ID&#xff1a;MySQL服務器分配給每個連接的唯一標識符&#xff0c;用于區分不同的客戶端連接USER, …

MongoDB 從入門到實踐:全面掌握文檔型 NoSQL 數據庫核心操作

目錄 一、MongoDB 基礎準備 1. 官方資源獲取 2. 安裝步驟解析 二、MongoDB 核心指令詳解 1. 數據庫操作指令 2. 集合操作指令 3. 文檔操作指令 查詢文檔 插入文檔 修改文檔 刪除文檔 三、進階查詢技巧 1. 運算符的靈活運用 比較運算符 邏輯運算符 范圍與成員運算…

CVPR2025丨遙感領域,全模態與秒超高清遙感建模重大突破,性能提升創新點

關注gongzhonghao【CVPR頂會精選】剛入門遙感建模時&#xff0c;總好奇別人為什么總能提出新方法&#xff1f;慢慢摸索后才發現&#xff0c;創新點并不是硬憋出來的&#xff0c;而是要從數據特性、傳感器差異、地物細節以及環境變化中發現機會。不同波段、不同分辨率、不同時相…

HTML5詳篇

前端三劍客 前端三劍客是指HTML、CSS和JavaScript: HTML超文本標記語言(Hyper Text Markup Language):簡單理解描述網頁結構的;用于網頁內容的語言。它通過使用不同的HTML標簽來定義頁面中的各種元素,例如標題、段落、圖像、鏈接等【無羽毛的小鳥模型】 CSS層疊樣式表(…

【Transient-Free 3DGS】delayed densification + coarse to fine增加GS的魯棒性

25年最新連接去除場景瞬態對象工程與3DGS的pipeline&#xff0c;改進了spotlesssplats&#xff0c;已開源&#xff1a; [2506.02751] RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGSAbstract page for arXiv paper 2506.02751: RobustSplat: De…