描述
输入一个单向链表,输出该链表中倒数第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]);
}
}
}
思路:将数据放到一个数组中,然后计算输出的索引,打印值即可。