【牛客网】合并两个排序的链表
来源:互联网 发布:怎样用mysql创建数据库 编辑:程序博客网 时间:2024/06/01 16:25
题目:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。超时的代码:
class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* k; if (pHead1 == NULL && pHead2 == NULL)return NULL; if (pHead1 == NULL)return pHead2; if (pHead2 == NULL)return pHead1; ((pHead1->val) > (pHead2->val)) ? k = pHead1 : k = pHead2; ListNode* m=k; while (pHead1 != NULL && pHead2 != NULL){ if ((pHead1->val) >= (pHead2->val)){ k->next= pHead2; pHead2 = pHead2->next; k = k->next; } else{ k->next = pHead1; pHead1 = pHead1->next; k = k->next; } } if (pHead1 ==NULL && pHead2 == NULL){ k->next = NULL; } else if (pHead1 == NULL){ while (pHead2 != NULL){ k->next = pHead2; pHead2 = pHead2->next; k = k->next; } k->next = NULL; } else{ while (pHead1 != NULL){ k->next = pHead1; pHead1 = pHead1->next; k = k->next; } k->next = NULL; } return m; }};//这里没有考虑到用递归的思想
- 剑指Offer上的代码
class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if (pHead1 == NULL) return pHead2; else if (pHead2 == NULL) return pHead1; ListNode* pMergedHead = NULL; if (pHead1->val < pHead2->val){ pMergedHead = pHead1; pMergedHead->next = Merge(pHead1->next, pHead2); } else{ pMergedHead = pHead2; pMergedHead->next = Merge(pHead1, pHead2->next); } return pMergedHead; }};//这里用递归算法进行归并,太好了
0 0
- 【牛客网】合并两个排序的链表
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序了的链表
- 合并两个排序的链表
- 23.合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- QQ聊天界面侧滑删除
- python linux上交互模式tab自动补全代码
- javaScript笔记(二十五) Cookie与存储
- asm (1) helloworld
- linux 批量创建用户和修改口令
- 【牛客网】合并两个排序的链表
- 超简单的ViewPager导航栏联动实现--TabLayout
- linux之文本处理工具
- hdoj5867Water problem
- 购物程序
- 科技论文摘要写作技巧
- Linux上文本处理三剑客之grep
- cogs2060 除法表达式【解法一】
- 如何更改ORACLE中schema或user的名字