package main
import "fmt"
//type LinkedNode struct {
// val interface{}
// next *LinkedNode
//}
//
//func NewLinkedNode(val interface{}) *LinkedNode {
// return &LinkedNode{
// val:val,
// }
//}
//
//func main() {
// node := NewLinkedNode("aaa")
// node2 := NewLinkedNode("bbb")
// node.next = node2
// node3 := NewLinkedNode("ccc")
// node2.next = node3
// for ; node != nil; node = node.next {
// fmt.Println(node)
// }
//}
type LinkedNode struct {
val interface{}
pre *LinkedNode
next *LinkedNode
}
func NewLinkedNode(val interface{}) *LinkedNode {
return &LinkedNode{
val:val,
}
}
func main() {
node := NewLinkedNode("aaa")
node2 := NewLinkedNode("bbb")
node.next = node2
node2.pre = node
node3 := NewLinkedNode("ccc")
node2.next = node3
node3.pre = node2
temp := node
for ; temp != nil; temp = temp.next {
fmt.Println(temp)
if temp.next == nil {
break
}
}
fmt.Println("-------------------")
for ; temp != nil; temp = temp.pre {
fmt.Println(temp)
}
}