注意 K=1 时, 不用逆置直接return
修改数据,而不修改指针以提高效率,最大数据耗时22ms

void K_Reverse( List L, int K )
{
if(K==1)
return ;
List p=L->Next,pTemp;
ElementType stack[K+1];
int top=0,num=0;
while(p)
{
num++;
stack[++top]=p->Data;
if(num%K==0)//进行逆置
{
while(top)//top!=0
{
pTemp->Data=stack[top--];
pTemp=pTemp->Next;
}
}
else if(num%K==1)//进行开始
{
pTemp=p;
}
p=p->Next;
}
return ;
}
本文介绍了一种链表操作算法——K组翻转。该算法通过对链表中每K个节点进行翻转来实现整体结构的变化,同时优化了过程以减少不必要的指针修改,提升了算法效率。
2375

被折叠的 条评论
为什么被折叠?



