【发布时间】:2021-01-26 07:01:40
【问题描述】:
没有错误,但仍然无法正常工作。我不知道出了什么问题。我们还没有在课堂上讨论节点的概念,所以我很难理解它。
它的输出应该是:
Skinny Love-Birdy
Happier- Ed Sheeran
有一天-切尔西卡特勒
public class HandsOnAct1 {
static LinkedList songs = new LinkedList();
static LinkedList artists = new LinkedList();
static LinkedList playlist = new LinkedList();
public static void Merge(){
int element= songs.size();
int number=0;
System.out.println(element);
if (number !=element){
playlist.add(number, songs);
playlist.add(number,artists);
number++;
}
System.out.println(playlist);
}
public static void main(String[] args) {
songs.add("Skinny Love");
songs.add("Happier");
songs.add("Sometimes");
artists.add("Birdy");
artists.add("Ed Sheeran");
artists.add("Chelsea Cutler");
Merge();
}
}
【问题讨论】:
-
欢迎来到 SO!你期待什么输出?顺便说一句,将参数传递给
Merge函数而不是让它在一组固定的全局变量上运行是一个更好的设计。返回结果并让调用者打印,以便函数可重用。 -
@ggorlen 输出应该是: Skinny Love- Birdy Happier- Ed Sheeran Someday- Chelsea Cutler 好的,我会尝试您的建议。希望我能让它工作。非常感谢h
-
您可以编辑您的帖子以完全显示它应该在控制台上显示的内容。作为评论很难阅读。谢谢。您的代码似乎想使用循环来遍历列表,但我没有看到任何循环。此外,最好在列表中使用泛型。
-
@ggorlen 对于此活动,我们面临的挑战是不要使用循环/迭代,而是使用任何递归方法。这就是我遇到很多麻烦的原因;-;
-
这很好,但是您可以在链表上使用递归来破坏堆栈,因此这是一个值得商榷的设计选择。当深度不是直线时,递归是最好的。如果您必须使用递归,则需要从其内部调用
Merge,这是您真正需要/需要参数的地方。我建议编辑您的帖子以说明您的要求(您需要使用递归)。
标签: java merge linked-list