-
Notifications
You must be signed in to change notification settings - Fork 152
Open
Description
/**
- 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;
t = t->next;
p = p->next;
}
while(p == NULL && q != NULL) {
t->next = q;
t = t->next;
q = q->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;
}
return NULL;
}
};
所不同的就是line 59加一行: return NULL;
虽然用不到,但是如果不加就会编译出错:
error:control reaches end of non-void function[-Werror=return-type]
Metadata
Metadata
Assignees
Labels
No labels