leetcode测试代码

作者:Lew's Personal Blog 发布于:2019-12-22 22:01 Sunday 分类:Leetcode

  • Problem: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


#include <iostream>
using namespace std;
struct ListNode
{
	int val;
	ListNode *next;
	ListNode(int x) :val(x), next(NULL) {}
};
ListNode* mergeTwoList(ListNode* l1, ListNode* l2)
{
	ListNode* newList = new ListNode(0);//头指针位置
	ListNode* head = newList;
	while (l1 != NULL && l2 != NULL)
	{
		if (l1->val < l2->val)
		{
			head->next = l1;
			head = head->next;
			l1 = l1->next;//l1步进
		}
		else
		{
			head->next = l2;
			head = head->next;
			l2 = l2->next;
		}
	}
	if (l1 == NULL)
	{
		head->next = l2;
	}
	else
	{
		head->next = l1;
	}

	return newList->next;
}
void printListNode(ListNode *l)
{
	while (l->next != NULL)
	{
		cout << l->val << "->";
		l = l->next;
	}
	cout << l->val << endl;
}
int main(int argc, char **argv)
{
	//l1
	ListNode a1(1);
	ListNode a2(2);
	ListNode a3(3);
	ListNode a4(4);
	a1.next = &a2;
	a2.next = &a3;
	a3.next = &a4;
	a4.next = NULL;
	//l2
	ListNode b1(1);
	ListNode b2(2);
	ListNode b3(4);
	ListNode b4(5);
	b1.next = &b2;
	b2.next = &b3;
	b3.next = &b4;
	b4.next = NULL;
	printListNode(&a1);
	printListNode(&b1);
	printListNode(mergeTwoList(&a1, &b1));
	return 0;
}







标签: C++

« 上一篇 单词拆分 | C++沉思录-基础例程 下一篇»

发表评论 »本文目前尚无任何评论

发表评论

干净网络从你做起,切勿黏贴小广告