天天看點

LeetCode Merge Two Sorted Lists(合并兩個有序連結清單)

題目連結

<pre name="code" class="cpp">struct ListNode *MergeSortList(struct ListNode *head1, struct ListNode *head2)
{
	struct ListNode *p1, *p2, *p, *temp;
	p = (struct ListNode *)malloc(sizeof(struct ListNode));
	temp = p;				//暫存合并後的連結清單的頭結點
	p1 = head1;
	p2 = head2;
	while (p1&&p2)
	{
		if (p1->val <= p2->val)
		{
			p->next = p1;
			p1 = p1->next;
		}
		else
		{
			p->next = p2;
			p2 = p2->next;
		}
		p = p->next;
	}
	if (p1)
		p->next = p1;
	else
		p->next = p2;
	p = temp->next;
	return p;
}