力扣
https://leetcode-cn.com/problems/merge-two-sorted-lists/submissions/做这道题目的时候,定义了ListNode指针p,但是没有分配内存,直接初始化,运行时报错。
Line 14: Char 11: runtime error: member access within null pointer of type 'struct ListNode' [solution.c]。分配内存后问题解决。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode *ans;
struct ListNode* p = (struct ListNode*) malloc(sizeof(struct ListNode));
p->val=0;
p->next=NULL;
ans=p;
if(list1==NULL)return list2;
if(list2==NULL)return list1;
while(list1 && list2){
if(list1->val<list2->val){
p->next=list1;
list1=list1->next;
}
else{
p->next=list2;
list2=list2->next;
}
p=p->next;
}
if(list1)p->next=list1;
else{p->next=list2;}
return ans->next;
}
本文探讨了在LeetCode题目`合并两个有序链表`中遇到的内存错误,重点在于理解为何未分配内存的ListNode指针会报错,并通过实例演示如何正确初始化ListNode。通过实例修复,读者将掌握链表操作中的内存管理技巧。
14万+

被折叠的 条评论
为什么被折叠?



