题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
http://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
import java.util.*; public class Main { private class ListNode{ private int key; private ListNode next; private ListNode(){ } public ListNode(int key,ListNode next){ this.key=key; this.next=next; } } private ListNode tail; private ListNode head; private int size=0; public Main(){ tail=null; head=null; } public void add(int num){ if(tail==null){ head = new ListNode(num,null); tail =head; }else{ ListNode Node = head; while(Node.next !=null){ Node = Node.next; } Node.next=new ListNode(num,null); tail=Node.next; } } public int getSize(int size){ this.size=size; return size; } public void clear(){ tail =null; head = null; } public int get(int num){ int key= size-num; ListNode Node = head; for(int i=0;i<key;i++){ Node = Node.next; } if(Node ==null){ return 0; } else{ return Node.key; }
}
public static void main(String [] args){
Main m = new Main();
Scanner sc= new Scanner(System.in);
while(sc.hasNext()){
int size =sc.nextInt();
m.getSize(size);
for(int i=0;i<size;i++){
m.add(sc.nextInt());
}
System.out.println(m.get(sc.nextInt()));
m.clear();
}
}
}