原题链接:#21 Merge Two Sorted Lists
要求:
合并两个已排序的单向链表,将合并后的结果作为一个链表返回。
ListNode定义:
public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }
难度:简单
分析:
由于两个链表均已排好序,令两个指针指向两个链表的头节点,每次取出两个指针中值较小的一个节点,然后将指针后移。当一个链表遍历完以后,将另一个链表的剩余部分拼接到结果链表的尾部即可。
解决方案:
Java - 304ms
public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2==null){ return l1; } if(l1.val>l2.val){ l2.next = mergeTwoLists(l1, l2.next); return l2; }else{ l1.next = mergeTwoLists(l1.next, l2); return l1; } }