题解 | #输出单向链表中倒数第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); while (in.hasNext()) { int inputN = in.nextInt(); ListNode inputHead = new ListNode(in.nextInt()); ListNode tmp = inputHead; for (int i = 1; i < inputN; i++) { inputHead.next = new ListNode(in.nextInt()); inputHead = inputHead.next; } int k = in.nextInt(); System.out.println(daoshu(tmp, k).val); } } public static class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val; this.next = next; } } private static ListNode daoshu(ListNode head, int k) { if (head == null || head.next == null) { return head; } ListNode dummy = new ListNode(-1); ListNode fastHead = head; ListNode slowHead = head; while (k > 0) { fastHead = fastHead.next; k--; } while (fastHead != null && fastHead.next != null) { slowHead = slowHead.next; fastHead = fastHead.next; } return slowHead.next; } }#刷题记录#