算法面试:链表转置

//单链表定义

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;
}

递归调用方法

ListNode ReverseList(ListNode pHead)
{
    ListNode p = NULL;
    if (pHead == NULL || pHead->pNext == NULL)
    {
        return pHead;
    } else {
        p = ReverseList(pHead -> pNext);
        p->pNext = pHead;
        pHead -> pNext = NULL;
    }
   
    return  pHead;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基本概念 链表的含义: 链表是一种用于存储数据集合的数据结构,具有以下属性 相邻元素之间通过指针相连 最后一个元素...
    古剑诛仙阅读 4,594评论 0 3
  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 8,632评论 0 19
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,947评论 2 9
  • 转载请注明出处:http://www.jianshu.com/p/c65d9d753c31 在上一篇博客《数据结构...
    Alent阅读 8,828评论 4 74
  • 秋播前后雨淅淅,麦儿墒情宜。蒜瓣儿入地无几,今又落喜雨。 自古秋雨话凄凉,也效弄诗行。有情无伤雨打窗,豌豆苗...
    双枪老太阅读 2,682评论 0 1