在2012年的校园招聘中,发现有很多家公司在招聘的笔试或面试题中都会出这样的一个题。没有准备的童鞋们在刚遇到这样的一个题时,可能会有些抓狂,但是不要着急,其实是很简单的,不信,就看下面的代码吧...
题目:写一个单链表逆序的函数。
函数如下:
- struct list {
-
-
struct list *next;
-
int a;
-
};
-
-
typedef struct list *plist;
-
-
plist reverse(plist p) {
-
-
plist p1, p2, p3;
-
-
p1 = NULL;
-
p2 = NULL;
-
p3 = p;
-
-
while (p3 != NULL) {
-
-
p2 = p3;
-
p3 = p3->next;
-
p2->next = p1;
-
p1 = p2;
-
}
-
-
return p2;
-
}
这里只是本着共享的意愿,将代理展示于此的。如有哪位大牛有更好的算法,希望能在这里共享之,以待共同进步...代码中若有不足之处,也热烈欢迎各位大牛批评指正!!!
阅读(1094) | 评论(0) | 转发(1) |