二分圖最大匹配
阿新 • • 發佈:2020-12-01
題目
給定一個連結串列,返回連結串列開始入環的第一個節點。如果連結串列無環,則返回 null。
為了表示給定連結串列中的環,我們使用整數 pos 來表示連結串列尾連線到連結串列中的位置(索引從 0 開始)。如果 pos 是 -1,則在該連結串列中沒有環。注意,pos 僅僅是用於標識環的情況,並不會作為引數傳遞到函式中。
說明:不允許修改給定的連結串列。
進階:
你是否可以使用 O(1) 空間解決此題?
示例 1:
輸入:head = [3,2,0,-4], pos = 1 輸出:返回索引為 1 的連結串列節點 解釋:連結串列中有一個環,其尾部連線到第二個節點
程式碼
package main import "fmt" type LinkList struct { Val int Next *LinkList } func detechCycle(node *LinkList) int { if node == nil { return -1 } slow, fast := node, node for fast != nil && fast.Next != nil { fast = fast.Next.Next slow = slow.Next if slow == fast { return 0 } } //如果快指標走到盡頭,沒環 if fast == nil || fast.Next == nil { return -1 } //快指標重新出發,相遇位置就是入口位置 fast = node for fast != slow { fast = fast.Next slow = slow.Next } return 0 } func main() { n2 := &LinkList{Val: 2} n4 := &LinkList{4, n2} n3 := &LinkList{3, n4} n2.Next = n3 n1 := &LinkList{1, n2} res := detechCycle(n1) fmt.Println(res) }
地址:https://mp.weixin.qq.com/s/YtoLsuP-TsXRRjPpSEbI_g