
描述
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。
链表结点定义如下:
struct ListNode
{
    int val;
    ListNode* m_pNext;
};
正常返回倒数第k个结点指针。
输入描述:
每一个测试用例会有多组。每一组的测试用例格式如下:
第一行输入链表结点个数n,1≤n≤1000  
第二行输入长度为n的数组val,表示链表的每一项,0≤val[i]≤10000 
第三行输入k的值, k≤n 
输出描述:
每一组,输出倒数第k个结点的值
解法一(java):
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        while (in.hasNext()) {
            int n = in.nextInt();
            int[] array = new int[n];
            for (int i = 0; i < n ; i++) {
                array[i] = in.nextInt();
            }
            int k = in.nextInt();
            int index = n - k;
            System.out.println(array[index]);
        }
    }
}
思路:将数据放到一个数组中,然后计算输出的索引,打印值即可。