标签:
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { 12 ListNode *l3 = NULL;//头指针 13 ListNode *p = l3; 14 // if(l1 == NULL && l2 == NULL) 15 // return NULL; 16 // else if 17 // return (l1 == NULL)?l1::l2; 18 if(l1 == NULL) return l2; 19 if(l2 == NULL) return l1; 20 while(l1&&l2) 21 { 22 if(l3 == NULL) 23 { 24 if(l1->val <= l2->val) 25 { 26 l3 = l1; 27 l1 = l1->next; 28 l3->next = NULL; 29 p = l3; 30 } 31 else if(l2->val <= l1->val) 32 { 33 l3=l2; 34 l2 = l2->next; 35 l3->next = NULL; 36 p = l3; 37 } 38 } 39 else 40 { 41 if(l1->val <= l2->val) 42 { 43 p->next = l1; 44 p = l1; 45 l1 = l1->next; 46 p->next = NULL; 47 } 48 else if(l2->val <= l1->val) 49 { 50 p->next = l2; 51 p = l2; 52 l2 = l2->next; 53 p->next = NULL; 54 } 55 } 56 } 57 if(l1) p->next = l1; 58 if(l2) p->next = l2; 59 return l3; 60 } 61 };
(leetcode)Merge Two Sorted Lists
标签:
原文地址:http://www.cnblogs.com/chdxiaoming/p/4577008.html