Merge Two Sorted Lists
2015-08-27 23:21
239 查看
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.
思路:直接合并,代码如下:
思路:直接合并,代码如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 == NULL) return l2; if(l2 == NULL) return l1; if(l1->val > l2->val)//l1的首个元素保持最小 swap(l1, l2); ListNode *p = l1, *q = l2, *pre; while(p && q){ if(p->val <= q->val){ pre = p; p = p->next; } else{ ListNode *tmp = new ListNode(q->val); tmp->next = pre->next; pre->next = tmp; pre = pre->next; q = q->next; } } if(q) pre->next = q; return l1; } };
相关文章推荐
- 智力题(农民分金条问题)
- 学习计划
- odoo(Openerp)如何在字段的on_change方法中动态返回domain
- Android Studio下构建Maven私服
- fork()&&fork()||fork()
- 两边点连直线求交点总数 树状数组或线段树 poj 3067 Japan
- easyui 之 datagrid动态列与列宽自适应
- KMP && AC自动机模板
- 2015.8.27
- 线段树 区间修改 总结
- Linux pkg-config命令
- 扩展方法
- Linux splint命令
- Activity的启动模式
- linux下的 fork vfork和clone函数
- 敏捷软件开发:原则、模式与实践——第11章 DIP:依赖倒置原则
- STM32 UART DMA实现未知数据长度接收
- iOS GCD多线程介绍
- openssl从PFX导出私钥、公钥
- do...while(0)的妙用