问题一:
merge two sorted linkedlist.
1
2
3 |
Key to solve this
problem The key to solve the problem is defining a fake head. Then compare the first elements from each list. Add the smaller one to the merged list. Finally, when one of them is empty, simply append it to the merged list, since it is already sorted. |
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode p1 = l1; ListNode p2 = l2; ListNode fakeHead = new ListNode(0); ListNode p = fakeHead; while(p1 != null && p2 != null){ if(p1.val <= p2.val){ p.next = p1; p1 = p1.next; }else{ p.next = p2; p2 = p2.next; } p = p.next; } if(p1 != null) p.next = p1; if(p2 != null) p.next = p2; return fakeHead.next; } }
原文:http://www.cnblogs.com/leetcode/p/3651167.html