小編給大家分享一下如何解決leetcode鏈表之環路檢測問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
目前成都創新互聯公司已為上1000+的企業提供了網站建設、域名、網絡空間、綿陽服務器托管、企業網站設計、湘東網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
給定一個鏈表,如果它是有環鏈表,實現一個算法返回環路的開頭節點。 有環鏈表的定義:在鏈表中某個節點的next元素指向在它前面出現過的節點,則表明該鏈表存在環路。 示例 1: 輸入:head = [3,2,0,-4], pos = 1 輸出:tail connects to node index 1 解釋:鏈表中有一個環,其尾部連接到第二個節點。 示例 2: 輸入:head = [1,2], pos = 0 輸出:tail connects to node index 0 解釋:鏈表中有一個環,其尾部連接到第一個節點。 示例 3: 輸入:head = [1], pos = -1 輸出:no cycle 解釋:鏈表中沒有環。 進階: 你是否可以不用額外空間解決此題? 來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/linked-list-cycle-lcci 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode detectCycle(ListNode head) { ListNode slow = head; ListNode fast = head; while (fast != null && fast.next != null) { slow = slow.next; fast = fast.next.next; if (slow == fast) { break; } } if (fast == null || fast.next == null) { return null; } while (head != fast) { head = head.next; fast = fast.next; } return head; } }
以上是“如何解決leetcode鏈表之環路檢測問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!
標題名稱:如何解決leetcode鏈表之環路檢測問題
當前路徑:http://m.newbst.com/article6/jegeig.html
成都網站建設公司_創新互聯,為您提供網站策劃、做網站、網站制作、定制開發、響應式網站、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯