力扣第21题
题目给定结点:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
给定结点定义有next指针
出错地方:
ListNode* list3=(ListNode*)malloc(sizeof(ListNode));
ListNode* p=list1;
ListNode* q=list2;
ListNode* r=list3;
解决方法:
定义list3后加一行
list3->next=nullptr;
因为结构体内存在next指针,而申请结构体空间后同时定义了next指针,此时next指针未指向任何空间,因此malloc一个结点时要让next只想nullptr,防止next野指针。
c++里指针指向空要使用nullptr