题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
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.hasNext()) { // 注意 while 处理多个 case int n = in.nextInt(); ListNode head = new ListNode(-1); ListNode tmp = head; // 构建链表 for (int i = 0; i < n; i++) { ListNode node = new ListNode(in.nextInt()); tmp.next = node; tmp = tmp.next; } int k = in.nextInt(); // 快慢指针 ListNode fast = head; ListNode slow = head; // fast 先走k步 for (int i = 0; i < k; i++) { if (fast == null) { fast = null; } else { fast = fast.next; } } ListNode ans = head; // 快指针走到末尾,慢指针未知即为倒数第k个元素 while (fast != null) { fast = fast.next; slow = slow.next; } System.out.println(slow.val); } } } class ListNode { ListNode next; int val; ListNode(int val) { this.val = val; next = null; } }