リンクリストの中間要素を見つけようとしていますが、セグメンテーションフォルトが発生しています。これは、私のウサギのアルゴリズムの実装です:リンクされたリストの中の要素を見つける際にセグメンテーションフォルトが発生する
//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;
}
助けてください。
'fast-> next'が 'NULL'の場合、' push'の実装には – RoiHatam
'fast-> next-> next;がありません。 –
は[mcve]を提供します。 – BLUEPIXY