首页 > 解决方案 > 为什么此代码显示超出输出限制?可以解决这个问题并为给定组中的反向链表提供迭代解决方案吗?

问题描述

结构节点*反向(结构节点*头,int k){

int num=k;
struct node * curr=head;
struct node * past=NULL;
struct node * future=NULL;
struct node * temp=head;
while(curr!=NULL && k--)
{
    future=curr->next;
    curr->next=past;
    past=curr;
    curr=future;
}
struct node * pre=past;
while(curr!=NULL)
{
    k=num-1;
    struct node *pra=curr;
    temp->next=curr;
    curr=curr->next;
    past=future;
    while(k--&& curr!=NULL)
    {
    future=curr->next;
    curr->next=past;
    past=curr;
    curr=future;
    }
    temp->next=past;
    temp=pra;
}
temp->next=NULL;
head=pre;
return head;
}

此代码采用单链表头节点的指针和一个整数 k 。函数 reverse() 应该反转大小为 k 的组中的链表并返回修改后的链表的头。但是,此代码显示超出输出限制。

标签: linked-listc++17dsa

解决方案


推荐阅读