Java?詳解分析鏈表的中間節(jié)點
1.題目描述
給定一個頭結(jié)點為 head
的非空單鏈表,返回鏈表的中間結(jié)點。
如果有兩個中間結(jié)點,則返回第二個中間結(jié)點。
題目來源:力扣(LeetCode)
2.解法
定義一個快指針 fast 和一個慢指針 slow ;fast 走兩步, slow 走一步,當(dāng) fas t走到盡頭時,
slow 就剛好在中間節(jié)點。因為 fast 比slow 多走一半路程
class Solution { public ListNode middleNode(ListNode head) { if (head == null) { return null; } ListNode fast = head; ListNode slow = head; while (fast != null && fast.next != null) { fast = fast.next.next; slow = slow.next; } return slow; } }
3.復(fù)雜度
復(fù)雜度分析
時間復(fù)雜度:O(N),其中 N 是給定鏈表的結(jié)點數(shù)目。
空間復(fù)雜度:O(1),只需要常數(shù)空間存放 slow 和 fast 兩個指針
到此這篇關(guān)于Java 詳解分析鏈表的中間節(jié)點的文章就介紹到這了,更多相關(guān)Java 鏈表的中間節(jié)點內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 劍指Offer之Java算法習(xí)題精講鏈表與數(shù)組專項訓(xùn)練
- 劍指Offer之Java算法習(xí)題精講鏈表與二叉樹專項訓(xùn)練
- 劍指Offer之Java算法習(xí)題精講鏈表與字符串及數(shù)組
- Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表
- Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之環(huán)形鏈表
- Java實現(xiàn)順序表和鏈表結(jié)構(gòu)
- Java實現(xiàn)單鏈表基礎(chǔ)操作
- Java關(guān)于重排鏈表詳細(xì)解析
- 劍指Offer之Java算法習(xí)題精講鏈表專項訓(xùn)練
相關(guān)文章
Java源碼解析之HashMap的put、resize方法詳解
這篇文章主要介紹了Java源碼解析之HashMap的put、resize方法詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04零基礎(chǔ)學(xué)Java:Java開發(fā)工具 Eclipse 安裝過程創(chuàng)建第一個Java項目及Eclipse的一些基礎(chǔ)使用技巧
這篇文章主要介紹了零基礎(chǔ)學(xué)Java:Java開發(fā)工具 Eclipse 安裝過程創(chuàng)建第一個Java項目及Eclipse的一些基礎(chǔ)使用技巧,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09淺談java中異步多線程超時導(dǎo)致的服務(wù)異常
下面小編就為大家?guī)硪黄獪\談java中異步多線程超時導(dǎo)致的服務(wù)異常。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06