【LeetCode】21.合并两个有序链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode *l; ListNode *temp; ListNode *ans; if(l1==NULL) return l2; if(l2==NULL) return l1; if(l1->val>l2->val){ l=l2; l2=l1; l1=l; } ans=l1; while(l2!=NULL){ if(l1==NULL) return ans; if(l1->next==NULL||l2->val<l1->next->val){ l=l1->next; temp=l2->next; l1->next=l2; l2->next=l; l1=l2; l2=temp; }else{ l1=l1->next; } } return ans; } };