中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
巴塘县| 平罗县| 水城县| 修武县| 类乌齐县| 昭平县| 辉县市| 常州市| 繁峙县| 浮梁县| 曲沃县| 环江| 长垣县| 崇文区| 蒙山县| 玛曲县| 磐安县| 金塔县| 平南县| 福建省| 三都| 丹东市| 毕节市| 武义县| 黑水县| 行唐县| 望谟县| 临洮县| 南宁市| 滦南县| 葫芦岛市| 神农架林区| 自贡市| 新疆| 根河市| 济源市| 东兰县| 淮南市| 民权县| 习水县| 隆回县|