• 单链表转置


    关于单链表的逆置,大家都很清楚有两种基本方法:(1)普通的循环的方法。(2)递归调用方法。今天正好研究这两种方法,发现很不理解代码这么写的具体的作用,诚如很多人所说,吃透这个还是要自己画一个详细的过程图。今天就给大家介绍一下(普通的循环方法)我学习下来的一些经验,如有不对之处还望大家一起交流。

    首先,以下是关于单链表逆置的普通循环方法的代码:
    //单链表定义
    class ListNode{
            int m_nValue;
            ListNode pNext;
    };
     
    //单链表逆置实现
    ListNode ReverseList(ListNode pHead)
    {
        if (pHead == NULL || pHead->pNext == NULL)
        {
            retrun pHead;
        }
     
        ListNode pRev = NULL;
        ListNode pCur = pHead;
        while(pCur != NULL)
        {
            ListNode pTemp = pCur;   // 步骤①
            pCur = pCur->pNext;       // 步骤②
            pTemp->pNext = pRev;      // 步骤③
            pRev = pTemp;
        }
        return pRev;
    }

    下面我们来用图解的方法具体介绍整个代码的实现流程:

    初始状态:

    第一次循环:

    第一次循环过后,步骤①:pTemp指向Head,步骤②:pCur指向P1,步骤③:pTemp->pNext指向NULL。

    此时得到的pRev为:

    第二次循环:

    第二次循环过后,步骤①:pTemp指向P1,步骤②:pCur指向P2,步骤③:pTemp->pNext指向Head。

    此时得到的pRev为:

    第三次循环:

    第三次循环过后:步骤①:pTemp指向P2,步骤②:pCur指向P3,步骤③:pTemp->pNext指向P1。

    此时得到的pRev为:

    第四次循环:

    第四次循环过后:步骤①:pTemp指向P3,步骤②:pCur指向NULL,步骤③:pTemp->pNext指向P2。

    此时得到的pRev为:

    至此,单链表的逆置完成。

  • 相关阅读:
    bat %n 判断传入的参数值和使用注意
    git ls-remote url,判断 url 是否存在
    bat 读取 ini 文件
    bat 提示窗口,带换行
    python .pth 文件 和 site 模块
    python Pillow 图片处理模块,好强大有没有
    Python 获取 exe 的 icon 并且保存
    git 判断路径是否是 git 仓库
    Python 去除字符串中的空行
    Android平台程序崩溃的类型及原因列举
  • 原文地址:https://www.cnblogs.com/yepei/p/7120634.html
Copyright © 2020-2023  润新知