给定⼀个常数K以及⼀个单链表L,请编写程序将L中每K个结点反转。 例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4; 如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。
输⼊格式:
每个输⼊包含1个测试⽤例。每个测试⽤例第1⾏给出第1个结点的地址、 结点总个数正整数N(<= 10^5)、以及正整数K(<=N), 即要求反转的⼦链结点的个数。结点的地址是5位⾮负整数,NULL地址⽤-1表示。 接下来有N⾏,每⾏格式为: Address Data Next 其中Address是结点地址,Data是该结点保存的整数数据,Next是下⼀结点的地址。
输出格式:
对每个测试⽤例,顺序输出反转后的链表,其上每个结点占⼀⾏,格式与输⼊相同。
输⼊样例:
1 | 00100 6 4 |
输出样例:
1 | 00000 4 33218 |
分析:这道题看了还是比较难的,不太理解他怎么定义 list 的,从给出的代码可以看出,list 起到了给链表自动连接起来,之后就是反转
1 |
|
本系列(PAT算法)作者mail:1302304703@qq.com(非本人)