

实现代码:
java
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int n = scanner.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
int k = scanner.nextInt();
// 构建链表
ListNode head = new ListNode(arr[0]);
ListNode current = head;
for (int i = 1; i < n; i++) {
current.next = new ListNode(arr[i]);
current = current.next;
}
// 寻找倒数第k个节点
ListNode result = findKthFromEnd(head, k);
System.out.println(result.val);
}
scanner.close();
}
public static ListNode findKthFromEnd(ListNode head, int k) {
ListNode fast = head;
ListNode slow = head;
// 快指针先走k步
for (int i = 0; i < k; i++) {
fast = fast.next;
}
// 快慢指针一起走,直到快指针到达末尾
while (fast != null) {
fast = fast.next;
slow = slow.next;
}
return slow;
}
}
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}