我正在研究這個在hackerrank上查找合併節點的方法。我的方法是:當兩個節點都不爲空時,我想將其中一個列表移動到它們的下一個節點,這是flag變量的用途。但不知何故,它給我分段錯誤?我是否意外地訪問了一個空變量?有人請賜教。以下是我的方法代碼。查找合併節點時發生分段錯誤?
約束:這兩個列表將收斂和兩個列表都是非NULL
int FindMergeNode(Node *headA, Node *headB)
{
// Complete this function
// Do not write the main method.
bool flag = true;
while(headA != headB){
if(flag) headA=headA->next;
else headB=headB->next;
flag = !flag;
}
return headA->data; //or headB->data;
}
爲什麼不看你的調試器? –
你永遠不會檢查'headA'或'headB'是否爲'NULL'。試圖從'(NULL) - > next'讀取將會調用未定義的行爲。 – Havenard
我之前檢查過,並試圖縮短我的代碼,並把它放在while循環中。謝謝,我會在我的代碼中修復它。 –