0
我試圖找到鏈接列表的中間元素,但我遇到了分段錯誤,並且我不確定發生了什麼問題。這是我實施的兔子算法:在鏈接列表中查找中間元素時出現分段錯誤
//fast slow pointer method
void ptMiddle(struct node **head_ref)
{
struct node *fast = (*head_ref);
struct node *slow = (*head_ref);
fast = fast->next;
while(fast!=NULL)
{
// printf("%d%d",slow->data,fast->data);
slow = slow->next;
fast = fast->next->next;
}
printf("Middle elemnet is:%d\n",slow->data);
}
int main()
{
struct node * head=NULL;
push(&head,1);
push(&head,2);
push(&head,3);
push(&head,4);
printList(&head);
printf("M:%d\n",middleNode(&head)->data);
printf("here");
append(&head,5);
append(&head,6);
printList(&head);
printf("M:%d\n",middleNode(&head)->data);
printf("here");
ptMiddle(&head);
return 0;
}
請幫忙。
'push'的執行缺失 – RoiHatam
'fast-> next-> next;'如果'fast-> next'爲'NULL'將會失敗。 –
提供[mcve]。 – BLUEPIXY