码迷,mamicode.com
首页 > 编程语言 > 详细

基于链表的倒置算法

时间:2020-11-23 12:14:58      阅读:8      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!