21. Merge Two Sorted Lists

21. Merge Two Sorted Lists

题目

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

Example:

Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4

解析

class Solution_21 {
public:
	ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
		if (l1==NULL)
		{
			return l2;
		}
		if (l2==NULL)
		{
			return l1;
		}
		ListNode* head = new ListNode(0);
		ListNode* cur = head;
		while (l1!=NULL&&l2!=NULL)
		{
			if (l1->val<=l2->val)
			{
				cur->next = l1;
				l1 = l1->next;
				cur = cur->next;
			}
			else
			{
				cur->next = l2;
				l2 = l2->next;
				cur = cur->next;
			}
		}
		if (l1!=NULL)
		{
			cur->next = l1;
		}
		if (l2!=NULL)
		{
			cur->next = l2;
		}
		return head->next;
	}
};

题目来源

原文地址:https://www.cnblogs.com/ranjiewen/p/8327867.html