package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func main() { type ListNode struct { m_nKey int m_pNext *ListNode } in := bufio.NewScanner(os.Stdin) for in.Scan() { n, _ := strconv.Atoi(in.Text()) list := new(ListNode) head := list in.Scan() arr := strings.Fields(in.Text()) for i := 0; i < n; i++ { key, _ := strconv.Atoi(arr[i]) node := &ListNode{ m_nKey: key, } head.m_pNext = node head = node } in.Scan() k, _ := strconv.Atoi(in.Text()) // slow == 倒数 k <==> fast n - k + 1 fast, slow := list, list for i := 0; i < k; i++ { fast = fast.m_pNext } for fast != nil { fast = fast.m_pNext slow = slow.m_pNext } if slow == nil { fmt.Println(slow) return } fmt.Println(slow.m_nKey) } }