保存单向链表的头节点,构建好单向链表后,从头到尾将节点全部压入栈中,再弹K次栈,打印第K次弹出的节点值就行
import java.util.Scanner;
import java.util.Stack;

class Node {
    int data;
    Node next;

    public Node(int data) {
        this.data = data;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    public Node getNext() {
        return next;
    }

    public int getData() {
        return data;
    }
}

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            Node former = null;
            Node head = null;
            for (int i = 0; i < n; i++) {
                int data = in.nextInt();
                Node t = new Node(data);
                if (i == 0) {
                    head = t;
                }
                if (former != null) {
                    former.setNext(t);
                }
                former = t;
            }
            int k = in.nextInt();
            Stack<Node> stack = new Stack();
            stack.push(head);
            while (head.getNext() != null) {
                stack.push(head.getNext());
                head = head.getNext();
            }
            Node target = null;
            while (k > 0) {
                target = stack.pop();
                k--;
            }
            System.out.println(target.getData());
        }

    }
}