哪位高手能帮小弟我解释一下这啥意思啊例如q=p->next,L->next=p,p->next=L->next,p=q

谁能帮我解释一下这啥意思啊例如q=p->next,L->next=p,p->next=L->next,p=q
我是初学数据结构   老师讲时候能听明白是那么回事   就是说知道是如何实现那么个思想   但是实际自己再看的时候就很迷糊了   现在此时我举例说一下
单链表逆置   如下:
p=L-> next-> next;
q=p-> next;
L-> next-> next=NULL;
while(p!=null)
{
p-> next=L-> next;
L-> next=p;
p=q;
q=q-> next;
现在我知道是要形成这样的效果   比如开始链表是这样:1-> 2-> 3-> 4
逆置完事应该是1 <-2 <-3 <-4   是这样吧.
例如
p=L-> next-> next;这句意思是把头节点的后继的后继指向p是吗   比如上面的例子来说就是1是头节点的话   那么这句话就是把1的后继也就是2的后继指向p对吗
q=p-> next;这句的意思就p的后继指向q
L-> next-> next=NULL;这句是把1的后继的后继置空
while(p!=null)如果p不为空
{
p-> next=L-> next;这句是把1的后继指向p的后继   (这句啥意思啊)
L-> next=p;这句呢把p付给l的后继是吗
p=q;这句把q给p
q=q-> next;
q=p-> next   这句是把p的后继指针指向q  
我的妈呀   蒙了啊   谁帮我分析一下啊   调理一下思路啊   怎么乱其八糟的啊
谢谢各位啦

单链表逆置方法二:线性表由q来
表示
p=null;
w=q;
while(w!=null)
{
w=w-> next;w的后继指向w
q-> next=p;(。。。。。我要疯了   谁帮我继续解释一下啊   求求你们了)
p=q;
q=w;
}
最好是把你们看到这些个语句是怎么理解的   在心里是怎么用汉语读出这些个语句的高速我一下   谢谢啦


------解决方案--------------------
我也是菜鸟一只,初学数据结构,刚好楼主所说问题看过,斗胆一试.这也是我首次在****发帖。不妥之处,还请见谅。我将楼主的程序放入VC中调试 发现根本不能实现逆序。不知楼主试了没有。
p=L-> next; /*指向第一个待逆序的结点 也就是所说的1的后继*/
L-> next=NULL;/*将逆表的初值设为空表*/
while(p!=NULL) /*原表中还有未逆序的结点*/
{
q=p; /*q是当前的逆序的结点*/
p=p-> next;/*指向下一个待逆序的结点*/
p-> next=L-> next;
L-> next=q; /*这两句是将q插入到逆序表的头上*/
}
不知对不对,还请各位高手 海批!!
------解决方案--------------------
用堆栈来实现吧
------解决方案--------------------
L是头结点
head-> 1-> 2-> 3-> 4
head就是L所在的位置
p=L-> next-> next; //指向1.next;
q=p-> next; //指向2.next
L-> next-> next=NULL; //将1.next设为null
while(p!=null)
{
p-> next=L-> next; // 两个结点倒置
L-> next=p; //现在头结点为p
p=q; //记录当前的p指针
q=q-> next; //向后递归进行处理