【发布时间】:2020-10-09 22:16:43
【问题描述】:
我可以通过一次递归将两个降序 单链表合并为一个降序列表,但我不知道如何使结果升序 而不是创建任何辅助方法。
这是我将它们合并为降序的代码。我试图在此代码中进行修改以使其上升但失败了。请帮帮我~
public Node mergeByRecursion(Node node1, Node node2) {
if (node1 == null) {
return node2;
} else if (node2 == null) {
return node1;
}
if (node1.value < node2.value) {
node1.next = merge(node1.next, node2);
return node1;
} else {
node2.next = merge(node1, node2.next);
return node2;
}
}
这是我要解决的详细问题的图片。
更新
我找到了一个可行的解决方案,但不确定它是否是最佳解决方案并且是否 100% 符合要求,因此我发了另一篇帖子要求进行代码审查。以防万一,任何人也被这个问题所困扰,想知道一个潜在的解决方案。 Code Review
【问题讨论】:
-
我现在没有时间正确分析/响应,但简而言之,使用递归反转链表相当于递归到列表的末尾,然后构建反向列表。递归。也许你可以把这个想法融入你现在拥有的东西中。
-
非常感谢您的建议,由于没有助手的限制,我很挣扎。但我已经找到了一个至少可行的解决方案。
标签: java algorithm sorting merge singly-linked-list