天天看點

一個單連結清單中傳回倒數第n個元素

這裡我們假設使用兩個指針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;

}

}