21. Merge Two Sorted Lists

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了21. Merge Two Sorted Lists脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
SLinkedList<int> slist = new SLinkedList<int>();
slist.ApPEnd(1);
slist.Append(2);
slist.Append(4);
Console.WrITeLine(slist.PRint());

SLinkedList<int> slist2 = new SLinkedList<int>();
slist2.Append(1);
slist2.Append(3);
slist2.Append(4);
Console.WriteLine(slist2.Print());

Console.WriteLine("MergeTwoList");
VAR rslt = slist.MergeTwoList(slist2);
Console.WriteLine(rslt.Print());

21. Merge Two Sorted Lists

/// <summary>
/// 合并 2 个有序链表
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="source"></param>
/// <param name="source2"></param>
/// <returns></returns>
public static SLinkedList<T> MergeTwoList<T>(this SLinkedList<T> source, SLinkedList<T> source2) where T : IComparable<T>
{
    var temp = new SLinkedList<T>(source);
    temp.Selectionsort();
    var temp2 = new SLinkedList<T>(source2);
    temp2.SelectionSort();
    var node = MergeTwoListImp(temp.Head, temp2.Head);
    var rslt = new SLinkedList<T>();
    while (node != null)
    {
        rslt.Append(node.Data);
        node = node.Next;
    }
    return rslt;
}
static SLinkedListNode<T> MergeTwoListImp<T>(SLinkedListNode<T> node1, SLinkedListNode<T> node2) where T : IComparable<T>
{
    if (node1 == null)
    {
        return node2;
    }
    if (node2 == null)
    {
        return node1;
    }
    if (node1.Data.IsLessThan(node2.Data))
    {
        node1.Next = MergeTwoListImp(node1.Next, node2);
        return node1;
    }
    node2.Next = MergeTwoListImp(node1, node2.Next);
    return node2;
}

脚本宝典总结

以上是脚本宝典为你收集整理的21. Merge Two Sorted Lists全部内容,希望文章能够帮你解决21. Merge Two Sorted Lists所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。