2012-03-20 58 views
0

我需要寫一個方法鏈表類:鏈表打印每n個整數方法

打印列表中的每個「第n個」節點的內容。從用戶獲得「n」,確保它是 大於0.

我該如何去做這件事?

public void nthNode (int n) { 
    if (n <= 0) { 
     System.out.println("error"); 
    } else { 
     //bla 
    } 
} 
+2

我第二次評論@Marlon。我們會給你一些提示,讓你朝着正確的方向前進,但是作業的重點在於學習,而不是要求一羣陌生人爲你做這項工作。 – 2012-03-20 03:24:05

+0

即時思考做一個計數器,並做一個while循環說curr.next!= null然後以某種方式遍歷每個節點,如果數據mod n == 0,system.out.println節點的數據。 – anthony 2012-03-20 03:36:02

回答

0

迭代列表中的每個元素。如果當前項目的索引可以被n整除,則打印該元素。您可以使用模運算符(%in Java)檢查可分性(%in Java)

0

您的主要動機是在計數器將是n的倍數時打印節點的數據。

因此,不需要在數據上檢查mod,你需要在計數器上執行它,並使用n進行mod檢查。

使用while循環遍歷鏈表(使用curr指針)。檢查條件curr.next!= null。初始化計數爲0.迭代計數直到現在遍歷的節點數。如果(計數== N),然後打印該節點的數據並初始化計數爲0

1
public void nthNode (int n) { 
    if (n <= 0) { 
     System.out.println("error"); 
    } else { 
     for (int i = 0; i < size(); i += n) { 
      //LinkedList#get(i); 
     } 
    } 
} 
0

假設你有一個節點類某種:

public void nthNode(int n){ 
    if(n <= 0){ 
      System.out.println("error"); 
     } else { 
     Node e = new Node(); 
     e = head; 

     int count = 0; 

     while(e != null){ 

       if(count == n){ 
        //do stuff 
        break; 
       } 

       e = e.next; 
       cout++; 
    } 

} 

對不起有點草率但是這就是要旨。