Niuke: BM7 リンクリストのリングのエントリノード
質問の説明
問題解決のアイデア
ハッシュ テーブルを使用してリンク リスト ノードを保存し、リンク リストを走査して、ノードをハッシュ テーブルに追加します。ノードがハッシュ テーブルに表示される場合は、そのノードがエントリ ノードであることを意味します。
ソリューションコード
package main
func EntryNodeOfLoop(pHead *ListNode) *ListNode{
m := make(map[*ListNode]struct{
})
for pHead != nil {
if _, ok := m[pHead]; ok {
return pHead
}
m[pHead] = struct{
}{
}
pHead = pHead.Next
}
return nil
}