LeetCode
LeetCode copied to clipboard
C++/21. Merge Two Sorted 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; 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]