私は現在、リストと関数の合計の問題を解決していますが、この質問に出くわしました。つまり、リンクされたリストを k 反時計回りに回転させます。ここに同じコードがあります
void rotate_k(struct list *node,int k)
{
int count=0;
struct list *knode,*ptr=node;
while(ptr!=NULL && count < k)
{
ptr=ptr->next;
count++;
}
knode=ptr;
while(ptr->next!=NULL)
{
ptr=ptr->next;
}
ptr->next =node;
node=knode->next;
knode->next=NULL;
}
入力が 1->2->3->4->5->6 で k=4 の場合を考えてみましょう。
出力は 5->6->1->2->3->4 である必要がありますが、コードは出力 1->2->3->4->5 を提供します。助けが必要です:)