91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Go中怎么遍歷環形鏈表

go
小億
86
2024-04-03 09:59:05
欄目: 編程語言

在Go中遍歷環形鏈表可以通過兩種方法實現:

  1. 快慢指針法:使用兩個指針,一個慢指針每次移動一步,一個快指針每次移動兩步。如果鏈表中有環,那么這兩個指針最終會相遇。具體實現代碼如下:
type ListNode struct {
    Val  int
    Next *ListNode
}

func hasCycle(head *ListNode) bool {
    if head == nil || head.Next == nil {
        return false
    }
    slow := head
    fast := head.Next
    for fast != nil && fast.Next != nil {
        if slow == fast {
            return true
        }
        slow = slow.Next
        fast = fast.Next.Next
    }
    return false
}
  1. 標記法:遍歷鏈表時,給每個節點一個標記,如果發現已經訪問過的節點,則說明鏈表有環。具體實現代碼如下:
type ListNode struct {
    Val  int
    Next *ListNode
}

func hasCycle(head *ListNode) bool {
    cur := head
    for cur != nil {
        if cur.Val == -1 {
            return true
        }
        cur.Val = -1
        cur = cur.Next
    }
    return false
}

0
新晃| 英山县| 皋兰县| 鹤岗市| 保靖县| 喀什市| 治多县| 福清市| 科尔| 孝昌县| 延庆县| 遂平县| 洛隆县| 靖安县| 自治县| 乾安县| 宿松县| 台山市| 剑川县| 永嘉县| 牙克石市| 靖西县| 新龙县| 威远县| 尖扎县| 弋阳县| 伊川县| 台州市| 凉山| 旬邑县| 方城县| 海城市| 广河县| 郧西县| 灵丘县| 桑日县| 淳安县| 平果县| 满城县| 和平县| 册亨县|