您的位置:首页 > 其它

leetcode之Merge Two Sorted Lists

2013-09-05 15:48 375 查看
/**

* 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) {

// Start typing your C/C++ solution below

// DO NOT write int main() function

if (l1 == NULL)

return l2;

if (l2 == NULL)

return l1;

ListNode* head;

ListNode* pos1 = l1;

ListNode* pos2 = l2;

if (l1->val > l2->val) {

head = l2;

pos2 = l2->next;

} else {

head = l1;

pos1 = pos1->next;

}

ListNode* pos = head;

while (pos1!=NULL && pos2!=NULL) {

if (pos1->val <= pos2->val) {

pos->next = pos1;

pos1=pos1->next;

} else {

pos->next = pos2;

pos2=pos2->next;

}

pos = pos->next;

}

if (pos1 == NULL&&pos2==NULL) {

return head;

} else if (pos1 !=NULL) {

pos->next = pos1;

} else {

pos->next = pos2;

}

return head;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: