【问题标题】:Merge sorting with linked chains in java使用java中的链接链合并排序
【发布时间】:2014-10-17 21:19:12
【问题描述】:

我正在寻找一种用于合并两个已排序的链接链的模板。我对 Java 还很陌生,这似乎是一项非常具有挑战性的任务,要以我所拥有的有限知识来完成。我了解如何对数组进行合并排序,但是当涉及到链表时,我似乎在画空白。你们都可以给我的任何帮助,无论是实际代码还是只是建议从哪里开始,将不胜感激。

感谢您的宝贵时间!

【问题讨论】:

    标签: linked-list mergesort


    【解决方案1】:

    如果这两个链表已经排序,那么将这两个链表合并起来就很容易了。我会告诉你算法,但你需要自己编写代码,因为它看起来像是一个学校项目。首先你创建一个新的链表,然后将新链表的头部指定为 list1Head 和 list2Head 的最小值,然后你只需遍历两个链表,每次选择两个链表的当前节点的最小值并附加到新创建的列表,如果它被选中,则将当前设置为 .Next。如果其中一个列表没有更多节点,则将另一个列表的其余部分直接附加到新列表中。完成

    【讨论】:

    • 太棒了,感谢您的帮助!是的,诚然是学校的,但是老师最后给我们发邮件说它应该是数组而不是链表,这可以解释上一个作业和这个作业之间的巨大差距。无论如何,这对于我进入链表时将是一个方便的建议!再次感谢!
    【解决方案2】:

    您不能查看每个列表中的第一个元素并取最小的元素吗?这是新列表的开始。从它来自的列表的前面删除它。现在再次查看第一个元素并取最小的元素,使其成为新列表中的第二个元素。然后只需重复此过程,将两个列表压缩在一起。

    如果您想避免创建新列表,只需找到最小的,然后查看指向的东西和另一个列表的开头,看看哪个更小。如果您还没有指向较小的指针,请更新指针。然后冲洗并重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2010-09-05
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多