http://bbs.chinaunix.net/forum/23/20041101/436188.html
【程序编程相关:管理故事026之029-一个人是正确的,】 【推荐阅读:得到电脑的信息】 gaorj 的问题如下: 【扩展信息:将文本藏入图片】 有一单链表n1->n2->...n(x-1)->nx,请问如何在不使用辅助节点的情况下实现该链表的反转呢? 反转后变成nx->n(x-1)->...n2->n1 . (随机测试,最大最至20000,都能有正确的结果) 代码如下: #include <stdio.h> #include <stdlib.h>#define swap(a,b) { \
a=a^0xffffffff; \ b=b^a; \ a=a^b; \ b=b^0xffffffff; \ b=b^a; \ } #define swap_point(pa,pb) {\ int h,t; \ plinklist ph,pt; \ h=(int)pa; \ t=(int)pb; \ ph = (plinklist)h; \ pt = (plinklist)t; \ swap(h,t); \ pa = (plinklist)h; \ pb = (plinklist)t; \ }typedef struct taglinklist
{ int data; struct taglinklist *next; } linklist , *plinklist ; int main(int argc, char* argv[]) { int count,i; plinklist head,tmpnode,tail; head=null; // construct linklist. ... 下一页