如何在不使用节点的情况下交替合并链表?以及通过使用递归



没有错误,但仍然无法工作。我搞不清楚出了什么问题。我们还没有在课堂上讨论节点的概念,所以我很难理解它

它的输出应该是:

瘦爱-鸟

更快乐-艾德·希兰

总有一天-切尔西卡特勒

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();    
}

}

这里有一个使用递归的例子,因为我知道它是先决条件?

static LinkedList<String> songs = new LinkedList<>();
static LinkedList<String> artists = new LinkedList<>();
static LinkedList<String> playlist = new LinkedList<>();
songs.add("Skinny Love");
songs.add("Happier");
songs.add("Sometimes");
artists.add("Birdy");
artists.add("Ed Sheeran");
artists.add("Chelsea Cutler");
int index = 0;
static void merge() {
// if you want/need checks
if ( index >= artists.size()){
return;
}
playlist.add(songs.get(index) + " - " + artists.get(index));
System.out.println(playlist.get(index));
index++;
merge();
}
merge();

您自己的代码的主要问题是,您需要从函数内部再次调用merge,并像我所做的那样将索引移动到函数外部,或者将其作为参数(如public static void merge(int index)(。然后你会像merge(index++)一样从内部调用它。

我想这是意见问题。(如果你愿意,你可以阅读纯/不纯函数和命令式/函数式编程,这就是区别(

相关内容

  • 没有找到相关文章

最新更新