from: http://forum.byr.edu.cn/wForum/disparticle.php?boardName=ACM_ICPC&ID=34153&pos=6 楼主&12楼
I just changed one line code.
给定一个单链表,结点包括一个整数和next指针,给定一个指向头的指针和一个指向尾的指针,修改链表,使得可以前向和后向访问链表,要求不能增加别的内存开销,也不能修改结点的结
其实我是希望用一个单链表的节点结构构造一个双向链表,这种链表有一个名字是Xorlist 节点结构(比如:)是:
typedef struct node{int data, struct node *next}*pNode;
给定一个单链表List,以及指向头尾的两个指针:start和end
那么我们可以通过一个函数将给定的单链表修改成双向链表而不用改变节点的结构
注:代码中没有进行类型转换,c++中的异或运算符只是在整数之间,由于32位机器上整数与指针的大小一致,我们可以进行强制类型转换,从而在int和指针之间进行类型转换,从而达到利用单向链表的节点结构得到双向链表的性质。