题目描述

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

限制:

0 <= 节点个数 <= 5000

思想

就是多设几个指针,分别表示当前结点,当前节点的前一个结点,当前结点的后一个结点,反转后的头结点。

代码实现

class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode *pNode=head, //初始化当前结点*pPrev=nullptr,  //将当前结点的前一个结点初始化为空*pReversedHead=nullptr, //链表为空时,反转后链表的头结点是空*pNext;while(pNode){  //当链表是空链表时,不会进行循环,会直接返回pReversedHead,此时值为空pNext=pNode->next;if(pNext==nullptr){  //如果当前结点的下一个结点为空时,说明这个结点时反转后的头结点pReversedHead=pNode;}pNode->next=pPrev;pPrev=pNode;pNode=pNext;}return pReversedHead;}
};

反转链表——《剑指offer》相关推荐

  1. 反转链表-剑指offer-16

    题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 分析: 逐个头插,实现反转 设置3个指针:head 头节点.prev 前一个节点. cur 下一个节点 注意:链表为空, ...

  2. 从尾到头打印链表---剑指Offer

    从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值. 解题思路: 1. 将带有头结点的链表顺序的从头到尾加入到ArrayList集合 2. 使用Collections工具类将ArrayLis ...

  3. 3、从尾到头打印链表------------剑指offer系列

    题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 分析 要了解链表的数据结构: val属性存储当前的值,next属性存储下一个节点的引用. 要遍历链表就是不断找到当前节点的nex ...

  4. 面试题5:从尾到头打印单链表(链表--剑指offer)

    题目描述 输入一个链表,从尾到头打印链表每个节点的值. //方法一:从头到尾打印单链表,将结果存放至vector中,然后将vector倒置 vector<int> printListFro ...

  5. 剑指offer第二版答案详细版(带详细解题思路)

    1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...

  6. 《剑指offer》题目说明

    剑指offer推荐刷题地址: Leetcode: https://leetcode-cn.com/problemset/lcof (官方授权) 牛客网:https://www.nowcoder.com ...

  7. C#LeetCode刷题-剑指Offer

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-剑指Offer | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode剑指Offer ...

  8. 力扣OJ 剑指 Offer(1-30)

    目录 剑指 Offer 03. 数组中重复的数字 剑指 Offer 04. 二维数组中的查找 剑指 Offer 05. 替换空格 剑指 Offer 06. 从尾到头打印链表 剑指 Offer 07. ...

  9. 力扣OJ 剑指 Offer II

    目录 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 004. ...

  10. 剑指offer刷题记录 python3 Java

    剑指offer刷题记录 python3 Java 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 10- I. 斐波那契数列 剑指 Offer 03. 数组中重复的数字 [★]剑指 Of ...

最新文章

  1. C语言数组清空的几种方法比较
  2. 反问疑问_句子练习大全(反问、疑问、设问、病句等练习)
  3. 解决Eclipse里Maven工程报 An error occurred while filtering resources错误
  4. 关系数据库——并发控制
  5. 中国水痘带状疱疹感染治疗药物市场趋势报告、技术动态创新及市场预测
  6. Ubuntu16下载tomcat8
  7. XSRF(XSS+CSRF)
  8. 每天一道剑指offer-合并两个排序的链表
  9. 委托(delegate)的三种调用方式:同步调用,异步调用,异步回调
  10. VOSviewer使用方法(详细便捷)附下载网址
  11. 苹果手机html5定位,苹果手机常去地点可以记录多长时间?
  12. python无限循环一段句子,python无限循环语句如何实现
  13. bat:windows bat脚本修改文件内容
  14. 编写一个python程序判断用户输入的8位银行卡_用Python编写的程序,提示用户输入一个由7位数字组成的帐号?...
  15. 微信小程序上实现 table 表格
  16. axTOCControl.HitTest方法
  17. fpc : 调用 MS TTS 读中英文
  18. rac 火星舱如何备份oracle_火星舱cdp功能-rpo与rto可以做到什么程度
  19. Linux setup jdk environment
  20. java多线程的几种实现方式

热门文章

  1. 微信小程序在线考试管理系统+后台管理系统
  2. 倍福TwinCAT(贝福Beckhoff)应用教程12.2 TwinCAT控制松下伺服 NC初步
  3. bootstrap多层modal的相关问题
  4. Python Web开发——Django框架学习
  5. python 自定义函数
  6. 【恒指早盘分析】期货交易绝非你想的那么简单
  7. 实现百度网盘分享保存到自己的网盘
  8. python+pyqt5
  9. RNN识别PTB数据代码精解
  10. 拯救者R720安装Ubuntu16.04双系统问题记录