标签:class 不为 取出 开始 地址 tmp while span null
基本原理:
通过指针从头节点开始,将该链表的各节点依次接到临时指针的前面,然后返回临时指针所指向的地址。
算法分析:
第一:定义三个指针变量。一个用来存放下一个节点tem;一个用当做临时指针存放提取出来的节点h;一个用来指向该链表的头节点u。
第二:判断下一个节点(tem)是否为空,如果为不为空,则进入循环体。
第三:保存将要提取出来节点(u)的下一个节点(tem),防止丢失。
第四:将提取出来的节点(u)接到临时指针(h)的前面,并将临时指针(h)前移一个单位,然后将保存的节点取出。
第五:重复步骤三和四,直到下一个节点(tem)为空
代码展示:
注:该链表的头指针指向的是链表的第一个元素。(即该链表所有节点皆存放了数据)
void Reverse(link& L) // 实现链表元素结点的倒置 { link h, u, tmp; // 定义所要用到的指针变量(指针类型为链表) h = NULL; u = L; //将h指向空,并用来存放提取出来的节点。将u指向链表的头节点。 while (u) //判断u是否为空。如果不为空,则进入循环体 { tmp = u->next; //将u的下一个节点给tem,防止u之后的节点丢失 u->next = h; //将h链表接到u节点的后面 h = u; //将h前移一个节点 u = tmp; //将u指向u保存的当前节点 } L = h; //将倒置之后的节点赋值给L }
标签:class 不为 取出 开始 地址 tmp while span null
原文地址:https://www.cnblogs.com/cheng111/p/13998169.html