做单链表反转,自己做了好几种方法,然后到了这种解法,不知道为什么会报错
报错内容:引用了空指针,但我不是提前判断了head->next是否为空吗?不理解
做单链表反转,自己做了好几种方法,然后到了这种解法,不知道为什么会报错
根本原因,head->next 不为NULL,但是 head->next->next 又可能为 NULL
即使这样,你这个代码也又问题的。你看下我写的:
LNode_t* reverseList(LNode_t* head)
{
if(!head) {
return head;
}
LNode_t* node = head;
LNode_t* pre = NULL;
while(node->next) {
pre = node->next;
node->next = pre->next;
pre->next = head;
head = pre;
}
return head;
}