CS笔试面试中非常经典的一道题,被考到过多次了。完整的实现如下代码:
需要注意的是:在把curNode反转指向其前面一个结点之后,也就是curNode->next = preNode之后,那么curNode与nextNode之间的链接关系就断开了。因此在curNode->next = preNode之前,需要把curNode后面的一个结点保存下来,否则就无法对结点进行循环后移。
另外,上述代码已经包含把链表数据输出到文件的操作。对应函数为:ouputList(linkList head, fstream fout);可以给以后的文件操作提供参考。
以上代码在VC6.0环境中编译通过。