2012-03-20 23 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++; 
    } 

} 

对不起有点草率但是这就是要旨。