题解 | #HJ51 输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
http://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
输出单向链表中倒数第k个结点
import java.util.ArrayList;
public class Main {
public int x;
public Main child;
public void setX(int x) {
this.x = x;
}
public int getX() {
return this.x;
}
public void setChild(Main child) {
this.child = child;
}
public Main getChild() {
return this.child ;
}
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int N = scan.nextInt();
int [] a = new int [N];
for (int i = 0; i < N; i++) {
a[i] = scan.nextInt();
}
int k = scan.nextInt();
Main listNodeHead = new Main();
listNodeHead.setX(a[0]);
Main listNodeHead2 = listNodeHead;
for (int i = 1; i < N; i++) {
Main listNode = new Main();
listNode.setX(a[i]);
listNodeHead.setChild(listNode);
listNodeHead =
listNode;//之前的指向被listNodeHead2等指向,所以空间和数据不会被回收
}
for (int i = 0; i < N - k; i++) {
listNodeHead2 = listNodeHead2.getChild();
}
System.out.println(listNodeHead2.getX());
}
}
}