Merge two sorted (ascending) linked lists and return it as a new sorted list. The new sorted list should be made by splicing together the nodes of the two lists and sorted in ascending order.
Example
Given 1->3->8->11->15->null
, 2->null
, return1->2->3->8->11->15->null
.
分析:
创建一个dummy head, 然后把两个List的node加到那个新的list中。
1 /** 2 * Definition for ListNode. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int val) { 7 * this.val = val; 8 * this.next = null; 9 * } 10 * } 11 */ 12 public class Solution { 13 /** 14 * @param ListNode l1 is the head of the linked list 15 * @param ListNode l2 is the head of the linked list 16 * @return: ListNode head of linked list 17 */ 18 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { 19 if (l1 == null) return l2; 20 if (l2 == null) return l1; 21 22 ListNode dummy = new ListNode(Integer.MIN_VALUE); 23 ListNode current = dummy; 24 25 while (l1 != null && l2 != null) { 26 if (l1.val < l2.val) { 27 current.next = l1; 28 l1 = l1.next; 29 } else { 30 current.next = l2; 31 l2 = l2.next; 32 } 33 current = current.next; 34 } 35 36 if (l1 != null) { 37 current.next = l1; 38 } else { 39 current.next = l2; 40 } 41 return dummy.next; 42 } 43 }
转载请注明出处:cnblogs.com/beiyeqingteng/