Java?詳解分析鏈表的中間節(jié)點
1.題目描述
給定一個頭結(jié)點為 head
的非空單鏈表,返回鏈表的中間結(jié)點。
如果有兩個中間結(jié)點,則返回第二個中間結(jié)點。
題目來源:力扣(LeetCode)
2.解法
定義一個快指針 fast 和一個慢指針 slow ;fast 走兩步, slow 走一步,當 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.復雜度
復雜度分析
時間復雜度:O(N),其中 N 是給定鏈表的結(jié)點數(shù)目。
空間復雜度:O(1),只需要常數(shù)空間存放 slow 和 fast 兩個指針
到此這篇關(guān)于Java 詳解分析鏈表的中間節(jié)點的文章就介紹到這了,更多相關(guān)Java 鏈表的中間節(jié)點內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java源碼解析之HashMap的put、resize方法詳解
這篇文章主要介紹了Java源碼解析之HashMap的put、resize方法詳解,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04零基礎(chǔ)學Java:Java開發(fā)工具 Eclipse 安裝過程創(chuàng)建第一個Java項目及Eclipse的一些基礎(chǔ)使用技巧
這篇文章主要介紹了零基礎(chǔ)學Java:Java開發(fā)工具 Eclipse 安裝過程創(chuàng)建第一個Java項目及Eclipse的一些基礎(chǔ)使用技巧,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09