私は新しい ds です。私はこの質問を試みていました-リンクされたリストが与えられた場合、効率的な方法ですべての代替 k ノード (k は関数への入力) を逆にする関数を作成します。アルゴリズムの複雑さを教えてください。コードでセグメンテーション違反が発生しています。ヘルプ!
</p>
struct node* func(struct node* head, int k)
{
struct node* run, *list1;
run =head->next;
list1=head;
int count =0;
struct node *list2=NULL;
while(list1!=NULL && count++<k)
{
list1->next=list2;
list2=list1;
list1=run;
run=list1->next;
}
head=list2;
while(list2->next!=NULL && list2!=NULL)
list2=list2->next;
list2->next=list1;
while(list1!=NULL && count++<k-1)
list1=list1->next;
if(list1!=NULL)
list1->next=func( head, k);
return head;
}