Leetcode 21. Merge Two Sorted Lists
来源:互联网 发布:网络爬虫工具下载 编辑:程序博客网 时间:2024/06/05 09:40
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(l2 == NULL) return l1; if(l1 == NULL) return l2; ListNode* head = NULL; if(l1->val < l2->val) { head = l1; head->next = mergeTwoLists(l1->next, l2); } else { head = l2; head->next = mergeTwoLists(l1, l2->next); } return head; }};
非递归算法:
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { if(NULL == l1) return l2; if(NULL == l2) return l1; ListNode* head=NULL; // head of the list to return // find first element (can use dummy node to put this part inside of the loop) if(l1->val < l2->val) { head = l1; l1 = l1->next; } else { head = l2; l2 = l2->next; } ListNode* p = head; // pointer to form new list // I use && to remove extra IF from the loop while(l1 && l2){ if(l1->val < l2->val) { p->next = l1; l1 = l1->next; } else { p->next = l2; l2 = l2->next; } p=p->next; } // add the rest of the tail, done! if(l1) p->next=l1; else p->next=l2; return head;}
0 0
- 21. Merge Two Sorted Lists leetcode(lists)
- [LeetCode]21.Merge Two Sorted Lists
- LeetCode --- 21. Merge Two Sorted Lists
- LeetCode 21.Merge Two Sorted Lists
- [Leetcode] 21. Merge Two Sorted Lists
- 【LeetCode】21.Merge Two Sorted Lists
- 【leetcode】21. Merge Two Sorted Lists
- [leetcode] 21.Merge Two Sorted Lists
- [leetcode] 21.Merge Two Sorted Lists
- [leetcode] 21. Merge Two Sorted Lists
- <LeetCode OJ> 21. Merge Two Sorted Lists
- 21. Merge Two Sorted Lists LeetCode
- leetcode 21. Merge Two Sorted Lists
- Leetcode:21. Merge Two Sorted Lists(JAVA)
- Leetcode ☞ 21. Merge Two Sorted Lists
- LeetCode 21. Merge Two Sorted Lists
- [LeetCode]21. Merge Two Sorted Lists
- 【LeetCode】21. Merge Two Sorted Lists
- 安卓开发中常见的问题总结
- Echart 的实例
- Dubbo新手入门实例HelloWorld(zookeeper)
- EventBus介绍
- 用户账号-用户标识符:UID与GID
- Leetcode 21. Merge Two Sorted Lists
- Struts2中Action的数据如何获取的
- redis3.0.0 集群安装详细步骤
- hadoop系列:zookeeper(2)——zookeeper核心原理(选举)
- 51单片机-定时器/计数器
- 【android】:android如何改变app图标
- 学习SpringMVC(二十二)之文件上传
- win下查看程序 的命令行 参数 类似linux ps -ef
- spring ,springMVC,Mybatis和ehcache整合遇到的问题