【发布时间】:2021-05-02 09:21:35
【问题描述】:
我花了很多时间在上面,但仍然遇到同样的错误。请有人帮忙。 我已经为一个 leetcode 问题编写了这段代码。(合并两个链表) 看了很多类似的答案,还是想不通
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2)
{
ListNode* third = NULL;
ListNode* last = NULL;
if (l1 && l2) {
if (l1->val < l2->val) {
third = last = l1;
l1 = l1->next;
last->next = NULL;
}
else {
third = last = l2;
l2 = l2->next;
last->next = NULL;
}
}
while (l1 && l2) {
if (l1->val < l2->val) {
last->next = l1;
last = l1;
l1 = l1->next;
last->next = NULL;
}
else {
last->next = l2;
last = l2;
l2 = l2->next;
last->next = NULL;
}
}
if (l1) {
last->next = l1;
}
if (l2) {
last->next = l2;
}
return third;
}
};
【问题讨论】:
-
例如假设 l1 和 l2 等于 NULL。你能明白为什么你的函数会在这种情况下崩溃吗?实际上,如果 l1 或 l2 等于 NULL,你会遇到同样的崩溃。
标签: c++ linked-list runtime-error nodes