beta-songsxg.blog.chinaunix.net
s_x_g
全部博文(194)
Moblin(1)
Storage(1)
InfiniBand(7)
VPN(1)
ROOTKIT(4)
PHP(4)
Java(0)
C++(0)
C(2)
ASM(1)
Qt(1)
Ubuntu(0)
LinuxMint(0)
LFS(0)
Debian(0)
SuSE(0)
Kernel(0)
Redhat(0)
Tips(3)
Win7(0)
Win2008(0)
WinVista(0)
Win2003(0)
WinXP(0)
Win2000(0)
Win9X(0)
DOS(0)
2010年(8)
2009年(71)
2008年(109)
2007年(6)
Bsolar
Marshal_
deuso
adaslove
zhu19911
kallytin
linuxDOS
cjym2013
fangwm
分类:
2008-02-25 09:22:09
//最开始的状态cur = slink;fw1 = slink->next;fw2 = fw1->next;slink->next = NULL;//反转一次fw1->next = cur;cur = fw1;fw1 = fw2;fw2 = fw2->next;
完整的代码请参考:
struct mynode{ int data; struct mynode *next;};struct mynode *single_link_reverse(struct mynode *slink){ struct mynode *cur; struct mynode *fw1; struct mynode *fw2; /* zero or one node*/ if (NULL == slink || NULL == slink->next) return slink; cur = slink; fw1 = slink->next; fw2 = fw1->next; slink->next = NULL; /*two nodes*/ if (NULL == fw2) { fw1->next = cur; return fw1; } /*three+ nodes*/ while (NULL != fw2) { fw1->next = cur; cur = fw1; fw1 = fw2; fw2 = fw2->next; } /*now fw1 is the last node*/ fw1->next = cur; return fw1;}
sxg
上一篇:设置网卡的混杂属性的例子
下一篇:NetXen 10G网卡驱动DMA分析
fera2008-02-28 12:52:12
sxg:这是n年前偶写的,不小心翻出来了。偶就是想说明一下,答案会有很多,但是思路可能只有一个。所以,就算简单也要列出思路,这样才不会掉入“想到哪写到哪”的怪圈里。 见笑!
chinaunix网友2008-02-28 09:24:14
fera写的除了用一个cur指针指向参数链表头,跟二楼是完全一样的哦 之所以简单,才没有解题思路;毕竟代码已经非常明白了呀
fera2008-02-27 13:13:45
H_List Reverse( H_List h_list ) { Node * temp = NULL, * prev = NULL, * cur = (Node *) h_list; while (cur) { temp = cur->next; cur->next = prev; prev = cur; cur = temp; } h_list = (H_List)prev; return h_list; }
fera2008-02-27 11:47:47
为啥大家都不写解题思路捏?——虽然这题很简单:将下一个结点的next指向本结点就OK了。
chinaunix网友2008-02-25 12:52:47
嘿嘿,数据结构放下老久了,见笑了哇 不过道理还是简单的,就是同时记住了三个节点,别掉链子了就成。 阁下写的的确很精炼,致敬~
登录 注册