LeetCode 21. Merge Two Sorted Lists
来源:互联网 发布:laravel nginx 编辑:程序博客网 时间:2024/04/30 18:08
题目
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.
思路
取a的长度,从后往前,如果当前不为空格,且当前位置>0,位置往前移动,计数加1
代码
1. 递归法:
/** * 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的值比l2的值小,递归调用l1的下一个与l2比较 l1->next = mergeTwoLists(l1->next, l2); return l1; } else {//反之同理 l2->next = mergeTwoLists(l2->next, l1); return l2; } }};
输出结果: 12ms
2. 非递归法:
/** * 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; } ListNode *mergeHead = NULL;//重新构建一个链表的头节点和尾节点 ListNode *current = NULL; while(l1!=NULL && l2!=NULL){//当两个都不为空时 if(l1->val <= l2->val){//如果l1的值比l2小于等于 if(mergeHead == NULL){//如果mergeHead为空 mergeHead = current = l1;//头和尾都为l1 }else{ current->next = l1;//否则current的下一个为l1 current = current->next;//current指向当前位置的下一个 } l1 = l1->next;//l1也指向下一个 }else{//如果l1的值比l2大时,同理 if(mergeHead == NULL){ mergeHead = current = l2; }else{ current->next = l2; current = current->next; } l2 = l2->next; } } if(l1 == NULL){//如果l1为空了,l2剩下的给current的下一个 current->next = l2; }else{//如果l2为空了,l1剩下的给current的下一个 current->next = l1; } return mergeHead; }};
**输出结果:**19ms
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
- 数据存储单位从B/KB/MB/GB到NB/DB,如何转化?全球数据量有多少
- RxBus在rxjava2.0 的使用
- EditText实现分割输入内容
- ReactNative开发中如何去掉iOS状态栏的"Loading from..."
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- LeetCode 21. Merge Two Sorted Lists
- Wkhtmltopdf的安装与使用
- 好雨云帮开发者大赛第二期:「Beego」
- [解决] tomcat 8.5 gzip不生效
- Android bindService (7.1) sequence flow
- Android仿微信朋友圈发动态功能(相册图片多选)
- 【Java之网络编程】1.网络基础
- 图像压缩编码
- sonarqube版本升级注意事项