标签:
题目:
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.
思路:
public class MergeTwoSortedLists { public class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } } public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode h1 = new ListNode(0), h2 = h1; while(l1!=null && l2!=null){ if(l1.val < l2.val){ h1.next = l1; l1 = l1.next; }else{ h1.next = l2; l2 = l2.next; } h1 = h1.next; } if(l1 == null){ h1.next = l2; } if(l2 == null){ h1.next = l1; } return h2.next; } }
//递归解法,头指针每次指向两个列表中最小的节点,然后递归 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1 == null) return l2; if(l2 == null) return l1; ListNode h; if(l1.val < l2.val){ h = l1; h.next = mergeTwoLists(l1.next, l2); }else{ h = l2; h.next = mergeTwoLists(l1, l2.next); } return h; }
LeetCode | #21 Merge Two Sorted Lists
标签:
原文地址:http://blog.csdn.net/allhaillouis/article/details/43115993