输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。
链表结点定义如下:
class ListNode{
int value;
ListNode next;
public ListNode(){
}
public ListNode(int value, ListNode next){
this.value = value;
this.next = next;
}
}
正常返回倒数第k个结点指针,异常返回空指针。
要求:
数据范围:链表长度满足 1≤n≤1000 ,k≤n ,链表中数据满足 0≤val≤10000 。
输出一个整数。
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int num = scan.nextInt();
ListNode header = new ListNode();
for (int i=0; i< num;i++) {
int value = scan.nextInt();
ListNode node = new ListNode(value, header.next);
header.next = node;
}
int target = scan.nextInt();
for (int i=0; i<target; i++) {
header = header.next;
}
System.out.println(header.value);
}
}
8
1 2 3 4 5 6 7 8
4
5
下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路
本文收录于,华为OD机试(JAVA)(2022&2023)
本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。