逆序一个单链表,C语言
发布网友
发布时间:2022-08-16 00:58
我来回答
共2个回答
热心网友
时间:2023-09-25 10:48
这里的CurrentPos指向当前操作节点,PreviousPos指向当前操作节点的前一个节点,NextPos指向当前操作的节点的后一个节点,每一轮循环的操作其实是把当前节点的下一个节点插入到表头,然后再对下一个节点做相同的操作,知道遍历所有节点。
CurrentPos->Next = PreviousPos;
//这句的意思是让当前节点的指向的下一个节点变成上次操作过的节点(即已经插到表头的节点)
PreviousPos = CurrentPos;
//这句是更新上次操作的节点,把当前节点当做下一次循环的已操作节点
CurrentPos = NextPos;
//这句是更新当前节点,把下一个节点当做下一次循环的当前节点
NextPos = NextPos->Next;
//更新下一次循环的NextPos节点
热心网友
时间:2023-09-25 10:48
在纸上画一画就知道了。
CurrentPos->Next = PreviousPos; 这句是实现逆转的链接语句,
举例如下:L=1->2->3;
PREV=NULL,CUR=1,NEXT=2; while前的初始化
1->NULL, PREV=1;CUR=2;NEXT=3;
2->1->NULL, PREV=2;CUR=3;NEXT=NULL; 循环结束
3->2->1->NULL, CurrentPos->Next = PreviousPos;