保存单向链表的头节点,构建好单向链表后,从头到尾将节点全部压入栈中,再弹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());
}
}
}

京公网安备 11010502036488号