21.Merge Two Sorted Lists

合并两列已排序链表.

注意点:

1.访问前判断是否为空。

代码:

#include<iostream>

using namespace std;

structListNode {

         intval;

         ListNode*next;

         ListNode(intx) :val(x),next(NULL) {}

     };

ListNode* mergeTwoLists(ListNode* l1,ListNode* l2) {

    ListNode*head,*index;

    if(l1==NULL)

        returnl2;

    if(l2==NULL)

        returnl1;

    if(l1->val>l2->val)

    {

        head=l2;

        l2=l2->next;

    }

    else

    {

        head=l1;

        l1=l1->next;

    }

    index=head;

    while(l1!=NULL&& l2!=NULL)

    {

        if(l1->valval)

        {

            index->next=l1;

            index=index->next;

            l1=l1->next;

        }

        else

        {

            index->next=l2;

            index=index->next;

            l2=l2->next;

        }

    }

    if(l1==NULL)

        index->next=l2;

    elseif(l2==NULL)

        index->next=l1;


    returnhead;


}

intmain(intargc,constchar* argv[]) {

    // insert code here...

    ListNode* p1,*p2,*p3,*q1,*q2,*q3;

    p1=newListNode(1);

    p2=newListNode(2);

    p3=newListNode(4);

    q1=newListNode(1);

    q2=newListNode(3);

    q3=newListNode(4);

    p1->next=p2;p2->next=p3;p3->next=NULL;

    q1->next=q2;q2->next=q3;q3->next=NULL;

    ListNode* result =mergeTwoLists(p1,q1);

    while(result!=NULL)

    {

        cout<val<<"->";

        result=result->next;

    }

    return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容