亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
平武县| 临高县| 凤凰县| 环江| 道真| 错那县| 闸北区| 乌鲁木齐县| 青铜峡市| 五家渠市| 红原县| 平武县| 永登县| 东阿县| 德阳市| 剑川县| 印江| 务川| 比如县| 贺兰县| 华池县| 密云县| 石家庄市| 大庆市| 密山市| 达尔| 乌苏市| 普格县| 武陟县| 普兰店市| 囊谦县| 中山市| 锦州市| 和田县| 屯昌县| 清水河县| 富源县| 融水| 四平市| 隆回县| 夏河县|