描述
将两个排序链表合并为一个新的排序链表
样例
给出 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;
}