您的位置:首页 > 其它

LeetCode 21. Merge Two Sorted Lists

2016-07-22 13:29 411 查看



21. Merge Two Sorted Lists

My Submissions QuestionEditorial Solution

Total Accepted: 120589 Total Submissions: 342161 Difficulty: Easy

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.

/**
* 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) {
if(l1 != NULL && l2 != NULL) {
ListNode *p = l1;
ListNode *q = l2;
ListNode *t, *h;//t为新链表的连接指针,h为新链表的头指针
if(p->val > q->val) {
t = q;
h = q;
q = q->next;
} else {
t = p;
h = p;
p = p->next;
}
while(p != NULL && q != NULL) {
if(p->val > q->val) {
t->next = q;
t = t->next;
q = q->next;
} else {
t->next = p;
t = t->next;
p = p->next;
}

}
while(p != NULL && q == NULL) {
t->next = p;
p = p->next;
t = t->next;
}
while(p == NULL && q != NULL) {
t->next = q;
q = q->next;
t = t->next;
}
while(p == NULL && q == NULL) {
return h;
}
}
if(l1 == NULL && l2 != NULL) {
return l2;
}
if(l1 != NULL && l2 == NULL) {
return l1;
}
if(l1 == NULL && l2 == NULL) {
return NULL;
}
}
};


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