【发布时间】:2013-12-01 17:19:22
【问题描述】:
我需要编写一个方法——返回一个字符串,其中奇数元素的 toStrings 之间用冒号连接。换句话说,第 1、第 3、第 5、... 元素。
我已经编写了一个方法来返回所有元素的字符串:
public String toString (Node<E> node) {
if (node == null) {
return "";
}
else {
Node<E> next = node.next ();
return node.element () + (next == null ? "" : "\n") + toString (next);
}
}
//Return String with all elements
public String toString() {
return toString(head);
}
此代码未经测试..
这是我第一次使用链表,所以我不确定是否有一个简单的单线来完成这个或者我需要使用什么逻辑?
感谢所有帮助。
【问题讨论】:
-
我喜欢你在这里使用的递归方法。但对于其他所有元素,查看
for循环可能更容易。 -
为什么没有测试?
-
@peeskillet - 我认为调用 具有非 void 参数 toString 的方法是一个不幸的选择;
oddElementsAsString似乎是一个更好的名字(它应该是静态的,因为它接收一个参数) -
@jonhopkins 是的,这就是我所倾向于的,但我的问题确实出在逻辑上,链表是否有办法抓取所有其他元素或者如何做到这一点?
-
现在想想,我不知道你的
Node类是否有length属性,所以while循环可能会更好。但我会用一个计数器来做,它会增加循环的每次迭代,以及添加到字符串中的每个其他循环。
标签: java linked-list tostring