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 Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null) { return l2; } if (l2 == null) { return l1; } ListNode head, tail; if (l1.val < l2.val) { head = tail = l1; l1 = l1.next; } else { head = tail = l2; l2 = l2.next; } while (l1!=null && l2!=null) { if (l1.val < l2.val) { tail.next = l1; tail = l1; l1 = l1.next; } else { tail.next = l2; tail = l2; l2 = l2.next; } } tail.next = (l1==null)?l2:l1; return head; } }
class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (l1 == NULL) { return l2; } if (l2 == NULL) { return l1; } ListNode* head; ListNode* tail; if (l1->val < l2->val) { head = tail = l1; l1 = l1->next; } else { head = tail = l2; l2 = l2->next; } while (l1!=NULL && l2!=NULL) { if (l1->val < l2->val) { tail->next = l1; tail = l1; l1 = l1->next; } else { tail->next = l2; tail = l2; l2 = l2->next; } } tail->next = (l1==NULL)?l2:l1; return head; } };
?
原文:http://hcx2013.iteye.com/blog/2216340