我需要为链表类编写一个方法:
打印列表中每个“第n”节点的内容。从用户那里获得“n”,确保它是 大于0.
我将如何做到这一点?
public void nthNode (int n) {
if (n <= 0) {
System.out.println("error");
} else {
//bla
}
}
答案 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++;
}
}
对不起有点草率,但这是要点。