JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

C语言单链表的逆序,迭代的实现方法

wys521 2024-11-02 14:58:41 精选教程 70 ℃ 0 评论

1.迭代的方法实现链表逆序

链表的结点:

typedef struct node{
    int  idata;
    struct node * pNext;
}Node;

假设链表有a,b,c,d四个节点,3个Node*类型的指针变量:pre、current、next.

①初始状态:

首先从A节点开始逆序,current指针指向第一个节点,pre指针指向NULL,next指针指向b节点。

②把a节点从原链表中解脱出来

将A节点的next指针指向prev,因为prev的当前值是NULL,所以A节点就从链表中脱离出来了,然后移动pre和current指针,使它们分别指向a节点和a的下一个节点b


现在来总结一下,循环的初始条件是

prev = NULL;

current指针指向第一个节点

循环迭代体是:

while (NULL != current)
	{
		next = current->pNext; 
		current->pNext = pre; //构建新的链表,pre初始值为NULL,故为新链表的最后一个节点
		pre = current; //移动pre指针,指向原链表的下一个节点
		current = next;//移动current指针,指向原链表的下一个节点
  }


循环终止条件是:

current == NULL

此时pre指针指向链表最后一个节点,新链表的head指针的值应该指向原链表的最后一个节点。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表