void K_Reverse( List L, int K ){
int k = 0;
List tep = L->Next;
while(tep){
tep = tep->Next;
k ++;
}
int cnt = k / K;
tep = L->Next;//第一个数据节点
List p, q, feture, pre;
pre = L;
while(cnt -- ){
List prepare = tep;//因为下一次需要逆置的结点们的上一个结点就是这个结点
q = tep;//保留一下
//下面循环目的找到需要逆置的下一个数据结点
for (int i = 0; i < K; i ++ ) q = q->Next;
feture = q;
q = tep->Next;//先保留这个节点
tep->Next = feture;
for (int i = 1; i < K; i++){
p = q;
q = q->Next;
p->Next = tep;
tep = p;
}
pre->Next = tep;
tep = feture;
pre = prepare;
}
}
3-5 单链表分段逆转
最新推荐文章于 2026-05-01 11:25:00 发布

2421

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



