// Copyright 2013 The Go Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
// +build OMIT | |
package main | |
import "fmt" | |
func main() { | |
// START OMIT | |
type Node struct { | |
Next *Node | |
Value interface{} | |
} | |
var first *Node | |
visited := make(map[*Node]bool) // HL | |
for n := first; n != nil; n = n.Next { | |
if visited[n] { // HL | |
fmt.Println("cycle detected") | |
break | |
} | |
visited[n] = true // HL | |
fmt.Println(n.Value) | |
} | |
// END OMIT | |
} |