lintcode-合并两个排序链表

来源:互联网 发布:单片机isp程序下载接口 编辑:程序博客网 时间:2024/05/18 18:55

描述

  将两个排序链表合并为一个新的排序链表

样例

  给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。

思路

  创建一个新链表,读取L1,L2,链表的值病比较,存入新的单链表中

代码实现

耗时:107ms

ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {        if (l1 == NULL)                         //l1为空            return l2;        if (l2 == NULL)                         //l2为空            return l2;        ListNode *head = new ListNode(0);       //建立一个新的单链表        ListNode *tempNode = head;              //定义一个指针指向链表表头        while (l1 != NULL && l2 != NULL) {      //l1,l2非空,比较结点大小,存入新链表中            if(l1->val < l2->val) {                tempNode->next = l1;                l1 = l1->next;            } else {                tempNode->next = l2;                l2 = l2->next;            }            tempNode = tempNode->next;        }        if(l1 != NULL)                          //当l1结束,将l2返回给新链表                          tempNode->next = l1;        if(l2 != NULL)            tempNode->next = l2;                //当l2结束,将l1返回给新链表        return head->next;    }
原创粉丝点击