题解 | #【双指针】输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
import java.util.*; import java.util.stream.*; import java.util.regex.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // while (in.hasNextInt()) { // // 方法一:不讲武德 // int n = in.nextInt(); // int[] a = new int[n]; // for (int i = 0; i < n; i++) { // a[i] = in.nextInt(); // } // int k = in.nextInt(); // System.out.println(a[n - k]); // } while (in.hasNextInt()) { // 方法二:ListNode 双指针 int n = in.nextInt(); ListNode node = new ListNode(in.nextInt()); ListNode head = node; ListNode headK = node; for (int i = 1; i < n; i++) { node.next = new ListNode(in.nextInt()); node = node.next; } int k = in.nextInt(); while (head.next != null) { head = head.next; k--; if (k <= 0) { headK = headK.next; } } System.out.println(headK.val); } } } class ListNode { int val; ListNode next; public ListNode(int val) { this.val = val; } @Override public String toString() { return String.valueOf(val); } };