LeetCode 解題思路 12(Hot 100)

在這里插入圖片描述

解題思路:

  1. 定義三個指針: prev(前驅節點)、current(當前節點)、nextNode(臨時保存下一個節點)
  2. 遍歷鏈表: 每次將 current.next 指向 prev,移動指針直到 current 為 null。

Java代碼:

public class Solution {public ListNode reverseList(ListNode head) {ListNode prev = null;ListNode current = head;while (current != null) {ListNode nextNode = current.next;current.next = prev;prev = current;current = nextNode;}return prev;}
}

復雜度分析:

  • 時間復雜度: O(n),需要遍歷所有節點一次。
  • 空間復雜度: O(1),僅使用固定數量的額外空間。

在這里插入圖片描述

解題思路:

  1. 找中點: 使用快慢指針,快指針每次移動兩步,慢指針每次移動一步,直到快指針到達末尾。此時慢指針位于鏈表中點。
  2. 反轉后半部分: 將中點之后的鏈表部分反轉。
  3. 對稱比較: 從頭節點和中點開始,逐個比較對應節點的值是否相等。

Java代碼:

public class Solution {public boolean isPalindrome(ListNode head) {if (head == null || head.next == null) return true;ListNode slow = head, fast = head.next;while (fast != null && fast.next != null) {fast = fast.next.next;slow = slow.next;}ListNode prev = null, curr = slow.next;while (curr != null) {ListNode nextNode = curr.next;curr.next = prev;prev = curr;curr = nextNode;}ListNode p1 = head, p2 = prev;while (p2 != null) {if (p1.val != p2.val) return false;p1 = p1.next;p2 = p2.next;}return true;}
}

復雜度分析:

  • 時間復雜度: O(n),所有操作均遍歷鏈表一次。
  • 空間復雜度: O(1),僅使用常數額外空間。

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

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

相關文章

Ubuntu搭建最簡單WEB服務器

安裝apache2 sudo apt install apache2 檢查狀態 $ sudo systemctl status apache2 ● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>Active: active (running) since Thu 2025-03-06 09:51:10…

Linux 軟硬鏈接

目錄 軟硬鏈接 軟鏈接 硬鏈接 軟硬鏈接的區別 硬鏈接場景 軟連接場景 軟硬鏈接 軟鏈接 我們可以通過以下命令創建一個文件的軟連接 ln -s mytest softlink-mytest 通過 ls -i -l 命令我們可以看到,軟鏈接文件的inode號與源文件的inode號是不同的&#xff0c…

不同開發語言之for循環的用法、區別總結

一、Objective-C &#xff08;1&#xff09;標準的c風格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循環。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …

計算機畢設-基于springboot的物業管理系統的設計與實現(附源碼+lw+ppt+開題報告)

博主介紹&#xff1a;?多個項目實戰經驗、多個大型網購商城開發經驗、在某機構指導學員上千名、專注于本行業領域? 技術范圍&#xff1a;Java實戰項目、Python實戰項目、微信小程序/安卓實戰項目、爬蟲大數據實戰項目、Nodejs實戰項目、PHP實戰項目、.NET實戰項目、Golang實戰…

景聯文科技:以精準數據標注賦能AI進化,構筑智能時代數據基石

在人工智能技術席卷全球的浪潮中&#xff0c;高質量數據已成為驅動AI模型進化的核心燃料。作為全球領先的AI數據服務解決方案提供商&#xff0c;景聯文科技深耕數據標注領域多年&#xff0c;以技術為基、以專業為本&#xff0c;致力于為全球客戶提供全場景、高精度、多模態的數…

批量合并 Word 文檔,支持合并成一個 Word,也支持按文件夾合并

我們經常會碰到需要將多個 Word 文檔批量合并成一個 Word 文檔的場景&#xff0c;比如需要合并后打印、合并后方便整理存檔等等。如果是人工的操作&#xff0c;會非常的麻煩。因此我們通常會借助一些批量處理腳本或者尋找批量處理的工具來幫我們實現批量合并 Word 文檔的操作。…

數據安全基石:備份文件的重要性與自動化實踐

在數字化時代&#xff0c;數據已成為企業和個人不可或缺的重要資產。無論是企業的運營數據、客戶資料&#xff0c;還是個人的學習資料、家庭照片&#xff0c;這些數據都承載著巨大的價值。然而&#xff0c;數據的安全問題也日益凸顯&#xff0c;硬件故障、軟件錯誤、人為失誤以…

用IdleHandler來性能優化及原理源碼分析

背景&#xff1a; 經常在做一些app冷啟動速度優化等性能優化工作時候&#xff0c;經常可能會發現有時候需要引入一些第三方sdk&#xff0c;或者庫&#xff0c;這些庫一般會要求我們在onCreate中進行初始化等&#xff0c;但是onCreate屬于生命周期的回調方法&#xff0c;如果on…

SyntaxError: Invalid or unexpected token in JSON at position x

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

04.基于C++實現多線程TCP服務器與客戶端通信

基于C實現多線程TCP服務器與客戶端通信 目錄 一、項目背景與目標二、從零開始理解網絡通信三、相關技術背景知識 1. 守護進程(Daemon Process)2. 線程池(Thread Pool)3. RAII設計模式 四、項目整體結構與邏輯五、核心模塊詳細分析 1. TCP服務器模塊2. 線程池模塊3. 任務處理模…

從0到1入門Linux

一、常用命令 ls 列出目錄內容 cd切換目錄mkdir創建新目錄rm刪除文件或目錄cp復制文件或目錄mv移動或重命名文件和目錄cat查看文件內容grep在文件中查找指定字符串ps查看當前進程狀態top查看內存kill終止進程df -h查看磁盤空間存儲情況iotop -o直接查看比較高的磁盤讀寫程序up…

Nginx負載均衡配置詳解:輕松實現高可用與高性能

在現代Web應用中&#xff0c;負載均衡是確保系統高可用性和高性能的關鍵技術之一。Nginx作為一款高性能的HTTP服務器和反向代理服務器&#xff0c;其負載均衡功能被廣泛應用于各種場景。本文將詳細介紹如何使用Nginx實現負載均衡配置&#xff0c;幫助開發者輕松應對高并發和大流…

使用chroot預安裝軟件到ubuntu22中

1、安裝依賴 # 安裝依賴工具 sudo apt update && sudo apt install -y \ squashfs-tools \ genisoimage \ xorriso \ isolinux \ syslinux-utils \ p7zip-full sudo apt update sudo apt install grub-pc-bin grub-efi-amd64-bin -y # 創建工作目錄 mkdir -p ./custom-…

php代碼審計工具-rips

代碼審計 代碼審計就是檢查所寫的代碼中是否有漏洞&#xff0c;檢查程序的源代碼是否有權限從而被黑客攻擊&#xff0c;同時也檢查了書寫的代碼是否規范。通過自動化的審查和人工審查的方式&#xff0c;逐行檢查源代碼&#xff0c;發現源代碼中安全缺陷所造成的漏洞&#xff0…

Docker參數,以及倉庫搭建

一。Docker的構建參數 注釋&#xff1a; 1.對于CMD&#xff0c;如果不想顯示&#xff0c;而是使用交互界面&#xff1a;docker run -ti --rm --name test2 busybox:v5 sh 2.對于CMD&#xff0c;一個交互界面只可以使用一個&#xff0c;如果想多次使用CMD&#xff0c;則用ENTR…

基于Python Django的人臉識別上課考勤系統(附源碼,部署)

博主介紹&#xff1a;?程序員徐師兄、7年大廠程序員經歷。全網粉絲12w、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;…

基于python實現的疫情數據可視化分析系統

基于python實現的疫情數據可視化分析系統 開發語言:Python 數據庫&#xff1a;MySQL所用到的知識&#xff1a;Django框架工具&#xff1a;pycharm、Navicat 系統功能實現 總體設計 系統實現 系統功能模塊 系統首頁可以查看首頁、疫情信息、核酸檢測、新聞資訊、個人中心、后…

(十 八)趣學設計模式 之 觀察者模式!

目錄 一、 啥是觀察者模式&#xff1f;二、 為什么要用觀察者模式&#xff1f;三、 觀察者模式的實現方式四、 觀察者模式的優缺點五、 觀察者模式的應用場景六、 總結 &#x1f31f;我的其他文章也講解的比較有趣&#x1f601;&#xff0c;如果喜歡博主的講解方式&#xff0c;…

Spring Boot 緩存最佳實踐:從基礎到生產的完整指南

Spring Boot 緩存最佳實踐&#xff1a;從基礎到生產的完整指南 引言 在現代分布式系統中&#xff0c;緩存是提升系統性能的銀彈。Spring Boot 通過 spring-boot-starter-cache? 模塊提供了開箱即用的緩存抽象&#xff0c;但如何根據業務需求實現靈活、可靠的緩存方案&#xf…

蘋果Siri升級遇阻,國行iPhone或將引入阿里、百度AI自救

AI整合進展緩慢 蘋果正加速將生成式AI技術整合至Siri&#xff0c;但內部消息稱其底層技術研發落后于競爭對手&#xff0c;進展未達預期。 國行iPhone將引入雙AI模型 蘋果計劃在2025年中期為國行iPhone引入AI功能&#xff0c;目前已敲定與 阿里巴巴、百度 合作&#xff0c;用戶…