package main
import (
"fmt"
)
type link struct {
add string
value int
next string
}
func getNext(list []*link, next string) *link {
for _, linkItem := range list {
if linkItem.add == next {
return linkItem
}
}
return nil
}
func main() {
var hand string
var linkLen int
fmt.Scan(&hand, &linkLen)
links := make([]*link, linkLen)
for i := 0; i < linkLen; i++ {
var addItem, nextItem string
var valueItem int
fmt.Scan(&addItem, &valueItem, &nextItem)
links[i] = &link{
add: addItem,
value: valueItem,
next: nextItem,
}
}
myLinks := make([]*link, 0)
tempHand := hand
for {
nextLink := getNext(links, tempHand)
if nextLink == nil {
break
}
tempHand = nextLink.next
myLinks = append(myLinks, nextLink)
}
myLinkLen := len(myLinks)
index := -1
if myLinkLen%2 != 0 {
index = (myLinkLen - 1) / 2
} else {
index = (myLinkLen) / 2
}
for i, linkItem := range myLinks {
if index == i {
fmt.Println(linkItem.value)
}
}
}
166、 单向链表中间节点
最新推荐文章于 2025-06-01 00:07:38 发布