我不知道為什么 subit 的結果是“'struct ListNode'型別的空指標內的成員訪問”。我測驗了樣本,大寫是正確的,不知道我對空指標的認知有什么問題,有人能幫幫我嗎?
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head){
struct ListNode* node = head;
while(node->next != NULL && node != NULL){
if(node->val == node->next->val){
struct ListNode* duplicate = node->next;
node->next = node->next->next;
free(duplicate);
}
else node = node->next;
}
return head;
}
uj5u.com熱心網友回復:
如果串列為空,head則為NULL. 在while回圈運算式中,使用which 在右側評估之前node取消參考,它檢查. 您應該在評估回圈之前檢查是否是,并且檢查應該始終在檢查之前執行。node->nextnodeNULLnodeNULLwhileNULLnodeNULLnode->next
這將是我的建議:
struct ListNode* deleteDuplicates(struct ListNode* head){
struct ListNode* node = head;
while(node != NULL){
if(node->next == NULL)
{
node = node->next;
}
else if(node->val == node->next->val){
struct ListNode* duplicate = node->next;
node->next = node->next->next;
free(duplicate);
}
else node = node->next;
}
return head;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/412256.html
標籤:
上一篇:將簡單值存盤在C中的矩陣中
下一篇:如何將值操作為指向結構的指標
