[LeetCode] Merge Two Sorted Lists, Solution

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.
» Solve this problem

[Thoughts]
简单的实现,也没什么可说的。

[Code]

1:    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {  
2: if(l1 == NULL) return l2;
3: if(l2 == NULL) return l1;
4: ListNode *head = new ListNode(-1);
5: ListNode *p = head;
6: while(l1 != NULL && l2!=NULL)
7: {
8: if(l1->val < l2->val)
9: {
10: p->next = l1;
11: l1= l1->next;
12: }
13: else
14: {
15: p->next = l2;
16: l2 = l2->next;
17: }
18: p = p->next;
19: }
20: if(l1 != NULL)
21: p->next = l1;
22: if(l2 != NULL)
23: p->next = l2;
24: p = head->next;
25: delete head;
26: return p;
27: }

Update 04/13/13 refactor code for succinct

1:       ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {  
2: ListNode* head = new ListNode(-1);
3: ListNode* p = head;
4: while(l1!=NULL || l2!= NULL)
5: {
6: int val1 = l1==NULL?INT_MAX:l1->val;
7: int val2 = l2==NULL? INT_MAX:l2->val;
8: if(val1<=val2)
9: {
10: p->next = l1;
11: l1=l1->next;
12: }
13: else
14: {
15: p->next = l2;
16: l2 = l2->next;
17: }
18: p= p->next;
19: }
20: p = head->next;
21: delete head;
22: return p;
23: }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值