最近学员们去各家软件外包公司面试赴微软软件测试工程师,大多都遇到了一个共同的编程问题:那就是
请将一个链表反置.
公司就爱考诸如数组反置等等的问题,程序都不难,但是你得现场编出来.为啥要考这道题目,因为测试工程师是需要逆向思维的.记得以前说过有关链表的基本操作,可以看看那篇,作为参考.
题目怎么做呢?咱们还是用C吧.
链表的结构体:
typedef Struct LinkList
{
int d;
struct Lnode *next;
}Lnode;
//假设L指向了已经存在链表的头结点
Lnode* OppLink(Lnode **L)
{
Lnode *p,*q,*r;
p=*Head,q=p->next;//p指向