【发布时间】:2013-11-17 02:53:48
【问题描述】:
我在网上搜索了一个干净简单的 Java 合并排序算法实现,用于使用递归的链表。
我找不到一个好的,所以我试图在这里实现它。但我卡住了。
这是我目前所拥有的:
public List mergeSortList(Node head, Node tail) {
if ((head == null) || (head.next == null))
return;
Node middle = this.findMiddle(head);
List left = mergeSortList(this.head, middle);
List right = mergeSortList(middle.next, tail);
return merge(left, right);
}
private List merge(List left, List right) {
List returnedList = new LinkedList();
}
private Node findMiddle(Node n) {
Node slow, fast;
slow = fast = n;
while (fast != null && fast.next.next != null) {
slow = slow.next;
fast = fast.next.next;
}
return slow;
}
谁能帮我纠正任何错误并填写存根。
谢谢
【问题讨论】:
标签: java algorithm recursion linked-list mergesort