链表打印每个第n个整数方法

时间:2012-03-20 03:18:24

标签: java linked-list nodes

我需要为链表类编写一个方法:

打印列表中每个“第n”节点的内容。从用户那里获得“n”,确保它是 大于0.

我将如何做到这一点?

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

4 个答案:

答案 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);
         }
     }
 }

答案 1 :(得分:0)

迭代列表中的每个元素。如果当前项的索引可被n整除,则打印该元素。您可以使用模数运算符(Java中的%)

来检查是否可分割

答案 2 :(得分:0)

您的主要动机是在计数器为n的倍数时打印节点数据。

因此,不需要检查数据上的mod,而是需要在计数器上执行此操作并使用n进行mod检查。

使用while循环迭代链接列表(使用curr指针)。检查条件curr.next!= null。初始化计数为0.迭代计数到目前为止遍历的节点数。如果(count == n),则打印节点数据并将计数初始化为0。

答案 3 :(得分: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++;
     }

}

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