這裡我們假設使用兩個指針p1,p2;
p1指向頭節點,p2指向節點n;
p1和p2一齊移動,始終保持距離R,R=n;
很容易得p2=null時,p1就是所要的值。
建立連結清單的代碼在上一篇筆記上有寫,在此直接調用
public class qu_n_zhi {
static int []input={12,35,12,78,15,76,21,58,54,1};
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 5;
LinkedListNode list = new LinkedListNode();
list = list.buildList(input);
System.out.print("倒數第n個數為:"+qu_n(list, n).data);
}
public static LinkedListNode qu_n(LinkedListNode head,int n){
if(head==null||n<1){
return null;
}
LinkedListNode p1=head;
LinkedListNode p2=head;
for(int i=0;i<n-1;i++){
if(p2==null){
return null;
}
p2=p2.link;
}
while(p2.link!=null){
p1=p1.link;
p2=p2.link;
}
return p1;
}
}