题目详情
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.题目要求我们将两个有序链表合成一个有序的链表。
Example:
输入: 1->2->4, 1->3->4
输出: 1->1->2->3->4->4
想法
- 首先要判断其中一个链表为空的状态,这种情况直接返回另一个链表即可。
- 每次递归都会获得当前两个链表指针位置的值较小的节点,从而组成一个新的链表。
解法
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null){
return l2;
}
if(l2 == null){
return l1;
}
ListNode mergeHead;
if(l1.val < l2.val){
mergeHead = l1;
mergeHead.next = mergeTwoLists(l1.next, l2);
}
else{
mergeHead = l2;
mergeHead.next = mergeTwoLists(l1, l2.next);
}
return mergeHead;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。