Merge Two Sorted List

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.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/

Thoughts: Here we use a recursive methods. The base case is, when one of the Node is null, return the other node, and we recursively compare the current val of the two node and connect the node with smaller value' next to the next recursion result, which is the already merged subset of the two listNode.

public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null || l2==null) return l1==null? l2 : l1;
if(l1.val < l2.val)
{
l1.next = mergeTwoLists(l1.next, l2);
return l1;
}
else
{
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
}
}

你可能感兴趣的:(merge)