LeetCode 21. Merge Two Sorted Lists 两个有序列表合成一个
2017-04-19 17:50
351 查看
题目
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.
Subscribe to see which companies asked this question.
还是锁住链表头部,让后面ListNode移动的问题
比较精简的方法(递归):
public ListNode mergeTwoLists(ListNode l1, ListNode l2){
if(l1 == null) return l2;
if(l2 == null) return l1;
if(l1.val < l2.val){
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else{
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
}
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.
Subscribe to see which companies asked this question.
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode newList = new ListNode(0); ListNode move = newList; while(l1!=null&&l2!=null){ if(l1.val>=l2.val){ ListNode NewNode = new ListNode(l2.val); move.next = NewNode; move = move.next; l2 = l2.next; } else{ ListNode NewNode = new ListNode(l1.val); move.next = NewNode; move = move.next; l1 = l1.next; } } if(l1==null){ move.next = l2; } if(l2==null){ move.next = l1; } return newList.next; } }
还是锁住链表头部,让后面ListNode移动的问题
比较精简的方法(递归):
public ListNode mergeTwoLists(ListNode l1, ListNode l2){
if(l1 == null) return l2;
if(l2 == null) return l1;
if(l1.val < l2.val){
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else{
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
}
相关文章推荐
- [LeetCode]Merge Two Sorted Lists & Remove Duplicates from Sorted List 两个有序链表合并为一个&删除链表重复元素
- leetcode:Merge Sorted Array(合并两个有序数组到其中一个数组中)【面试算法题】
- leetcode_效率题解_[python/C++]_21. Merge Two Sorted Lists(合并2个有序链表)
- LeetCode 21 Merge Two Sorted Lists (有序两个链表整合)
- 21. Merge Two Sorted Lists | 连接两个有序单链表
- [LeetCode] 21. Merge Two Sorted Lists 合并两个有序链表 @python
- leetcode:Merge Two Sorted Lists (链接两个有序链表)【面试算法题】
- leetcode 21. Merge Two Sorted Lists(C语言,合并两个排序的链表为一个排序链表)32
- 【LeetCode刷题】排列两个有序链表Merge Two Sorted Lists(递归思想)(java)
- LeetCode:21_Merge Two Sorted Lists | 合并两个排序列表 | Easy
- LeetCode-21 Merge Two Sorted Lists(合并两个有序链表)
- Leetcode Merge Two Sorted Lists 合并两个有序链表
- Leetcode:Merge Two Sorted Lists 合并两个有序单链表
- 面试题17:合并两个有序链表(Leetcode-21:Merge Two Sorted Lists)
- LeetCode-Merge Two Sorted Lists--链接两个有序链表
- Merge Two Sorted Lists 合并两个有序链表@LeetCode
- Leetcode Merge Two Sorted Lists(合并两个有序表)
- (LeetCode)Merge Two Sorted Lists --- 合并两个有序序列
- [LeetCode21]Merge Two Sorted Lists(合并两个有序链表)
- LeetCode--Merge Two Sorted Lists(合并两个有序链表)Python