题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
package main import ( "fmt" ) // type ListNode struct { // Val int // Next *ListNode // } func createListNode(nums []int) *ListNode { dummy := ListNode{} p := &dummy for _, num := range nums { node := ListNode{Val: num, Next: nil} p.Next = &node p = p.Next } return dummy.Next } func findLastKNode(head *ListNode, k int) int { slow, fast := head, head for i:=0; i<k; i++ { fast = fast.Next } for fast != nil { slow = slow.Next fast = fast.Next } return slow.Val } func main() { for true { var m int n, _ := fmt.Scan(&m) if n == 0 { break } var nums []int for i:=0; i<m; i++ { var num int fmt.Scan(&num) nums = append(nums, num) } var k int fmt.Scan(&k) head := createListNode(nums) val := findLastKNode(head, k) fmt.Println(val) } }
// 本题输入为多组用例,所以采用:fmt.Scan(&m)