合并两个排序的链表
来源:互联网 发布:简易地图绘制软件 编辑:程序博客网 时间:2024/06/16 23:25
题目
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路
每次比较两个链表的当前节点,把小的值取出来,并且让这个链表指向下一个节点,一直到至少有一个链表为空为止,如果还有链表有剩余(最多一个链表),把这个链表剩余的部分直接接上去就可以了。
参考代码
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution{public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if (!pHead1 && !pHead2) return nullptr; ListNode *head = nullptr , *pre; bool first = true; while (pHead1 && pHead2) { if (pHead1->val <= pHead2->val) { if (first) { head = new ListNode(pHead1->val); pre = head; first = false; } else { ListNode* temp = new ListNode(pHead1->val); pre->next = temp; pre = pre->next; } pHead1 = pHead1->next; } else { if (first) { head = new ListNode(pHead2->val); pre = head; first = false; } else { ListNode* temp = new ListNode(pHead2->val); pre->next = temp; pre = pre->next; } pHead2 = pHead2->next; } } if (pHead1) { if (!head) return pHead1; pre->next = pHead1; } if (pHead2) { if (!head) return pHead2; pre->next = pHead2; } return head; }};
阅读全文
0 0
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序了的链表
- 合并两个排序的链表
- 23.合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- HTML入门笔记10-em和strong标签
- 互联网协议入门(二)
- js变量前有 var 与没有的区别
- Spring 的本质系列
- testbench——常用语句与函数(日常更新)
- 合并两个排序的链表
- Java菜鸟学习日记14
- :first-child
- MySQL事务的隔离级别
- "explicit"
- OpenShift结构流程
- 泛型笔记
- JDBC基础编程、核心API
- CSS圆角边框样式实例