递归合并两个排序的链接列表?



我找不到代码的任何错误,但是当我提交它时,两个测试用例给出了运行时错误。请帮助我找出该错误。我已经检查了至少 30 个自定义测试用例,但它为所有测试用例提供了正确的输出。

Code

public static Node mergeTwoList(Node head1, Node head2) {
Node c = null;        
if (head1 == null) {
return head2;
} else if (head2 == null) {
return head1;
}
if (head1.data < head2.data) {
c = head1;
c.next = mergeTwoList(head1.next, head2);
} else {
c = head2;
c.next = mergeTwoList(head1, head2.next); 
}
return c;
}

如果有人想出什么,请告诉我。

我认为原因是stackoverflow,因为你使用递归,递归会产生stack,如果链表很长,可能会导致stackoverflow。

关于leecode有一个类似的问题,我用迭代来解决它, 我将解决方案粘贴到我的博客中,尽管解释在Madarin中,但代码仍然可以作为您的参考。链接如下: http://codecrazer.blogspot.tw/2017/07/leetcode-21-merge-two-sorted-lists.html

相关内容

  • 没有找到相关文章

最新更新