2016-03-13 45 views
-6

這個問題已經解決了,但我用另一種方式解決了這個問題。我只是想知道我是否正確。檢查我的解決方案如何從單個鏈接列表的末尾找到第n個元素

我的代碼是:

public static Object nthToLast(int n, LinkedList list) 
{ 
    int len = list.size(); 
    if(n<0 || len<n) 
     return null; 
    return list.get(len-n); 
} 

謝謝!

+4

此問題屬於http://codereview.stackexchange.com/ –

+0

謝謝。我也會在那裏發佈它。 –

+0

做'list.get(len-n)'的意義是什麼?'不把它分配給任何東西,然後把它打印出來? –

回答

0
public static Object nthToLast(int n, LinkedList list) 
{ 
    int len = list.size(); 
    if(n<0 || len < n){ 
     return null; 
    } 
    return list.get(len-n); 
} 
+0

所以這個解決方案也適用於這個問題,我的方法是正確的嗎? –

0

爲什麼你把

list.get(len-n); 
System.out.println(list.get(len-n)); 

分開?

System.out.println(list.get(len-n)); 

會正常工作。另外,由於您沒有真正弄清楚您計算的方式,因此您可能需要使用len = list.size()-1;這種方式與從前面開始的規則相同,最後一個元素在n = 0時,倒數第二個是在n = 1等。

而且,作爲rahulroc,請確保您檢查您檢查的值是否在列表中,否則會給出錯誤。

+0

這是使用相同的東西2次的錯誤。我沒有減去該值,因爲那樣會給出錯誤的答案,或者我將不得不在代碼後面添加1。 –

+0

那就夠公平了。 –

相關問題