资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何合并两个有序链表

如何合并两个有序链表?相信很多人都还没学会这个技能,通过这篇文章的总结,希望你能学会合并两个有序链表。如下资料是关于合并两个有序链表的两种方法。

我们提供的服务有:网站建设、成都做网站、微信公众号开发、网站优化、网站认证、荣县ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的荣县网站制作公司

直接合并

因为已经有序了,类似归并排序中的合并一样,操作不难,直接上代码了.

ListNode t = new ListNode(0);
ListNode head = t;
while(l1 != null && l2 != null)    
{
    if(l1.val < l2.val)
    {
        t.next = l1;
        l1 = l1.next;
    }
    else
    {
        t.next = l2;
        l2 = l2.next;
    }
    t = t.next;
}
while(l1 != null)
{
    t.next = l1;
    l1 = l1.next;
    t = t.next;
}
while(l2 != null)
{
    t.next = l2;
    l2 = l2.next;
    t = t.next;
}
return head.next;

如何合并两个有序链表

递归合并

这个可以采用递归优化,而且不用额外设置一个移动的临时结点t.首先对两个指针进行判空操作,其中一个为空的话返回另一个,然后进行递归合并,首先创建一个head结点,进行赋值后递归合并next结点,将返回值赋给head.next,最后返回head.

if(l1 == null) return l2;
if(l2 == null) return l1;

ListNode head = null;
if(l1.val < l2.val)
{
    head = l1;
    head.next = mergeTwoLists(l1.next, l2);
}
else
{
    head = l2;
    head.next = mergeTwoLists(l1, l2.next);
}
return head;

看完上述内容,你们掌握合并两个有序链表的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站栏目:如何合并两个有序链表
URL标题:http://cdkjz.cn/article/isjjid.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220