题目:输入一个链表,反转链表后,输出新链表的表头。

A:定义3个结点,pNode作移动指针,pRet作输出指针,pPrev作前驱指针

    在pNode没有到达链尾之前,循环里创建pNext指针记录pNode的后继结点

  如果pNode为空,代表已经到了链尾,输出结果

  其他:pNode的next指向pPrev,pPrev指向pNode,pNode指向pNext

/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead == nullptr)
{
return nullptr;
}
ListNode *pNode = pHead;
ListNode *pPrev = nullptr;
ListNode *pRet = nullptr; while(pNode != nullptr)
{
ListNode *pNext = pNode->next;
if(pNext == nullptr)
{
pRet = pNode;
}
pNode->next = pPrev; //精髓
pPrev = pNode;
pNode = pNext;
}
return pRet;
}
};

  

【剑指Offer】【链表】反转链表的更多相关文章

  1. 《剑指offer》 反转链表

    本题来自<剑指offer> 反转链表 题目: 输入一个链表,反转链表后,输出新链表的表头. 思路: 需要三个变量,来保存当前节点的,前面节点和反转后的节点. C++ Code: /* st ...

  2. 剑指Offer:反转链表【24】

    剑指Offer:反转链表[24] 题目描述 输入一个链表,反转链表后,输出新链表的表头. 解题分析 这道题我才发现我是属于那种真的笨,图都画出来了流程写不出来.看了别人的代码,总觉得自己差一步. 这也 ...

  3. 剑指 Offer 24. 反转链表

    剑指 Offer 24. 反转链表 Offer 24 题目描述: 常规解法 本题的解法很常规,没有其他特别的坑,只需要将链表反转即可. package com.walegarrett.offer; / ...

  4. 【剑指Offer】反转链表 解题报告(Python)

    [剑指Offer]反转链表 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描 ...

  5. 【Java】 剑指offer(24) 反转链表

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头 ...

  6. Go语言实现:【剑指offer】反转链表

    该题目来源于牛客网<剑指offer>专题. 输入一个链表,反转链表后,输出新链表的表头. Go语言实现: 迭代: /** * Definition for singly-linked li ...

  7. 剑指OFFER之反转链表(九度OJ1518)

    题目描述: 输入一个链表,反转链表后,输出链表的所有元素.(hint : 请务必使用链表) 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行为一个整数n(0<= ...

  8. 剑指offer:反转链表

    问题描述 输入一个链表,反转链表后,输出新链表的表头. c++代码 /* struct ListNode { int val; struct ListNode *next; ListNode(int ...

  9. 剑指Offer 15. 反转链表 (链表)

    题目描述 输入一个链表,反转链表后,输出新链表的表头. 题目地址 https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca? ...

  10. 【剑指offer】反转链表

    输入一个链表,反转链表后,输出新链表的表头. *与之前的问题不同,这里需要修改链表的指向(之前的问题,不需要修改结点的指针,只需使用栈保存每个结点的值) *注意非空处理以及最后一个结点指针的修改 /* ...

随机推荐

  1. error Unnecessary return statement no-useless-return

    语法错误 原本是 addUser() {       this.$refs.addFormRef.validate((valid) => {         if (!valid) return ...

  2. 记一次 turbostat 的使用

    场景:为了测试海光cpu的性能,从而使用turbostat 来监测cpu工作时候的相关频率. cpu 型号: 1.Hygon C86 7165 24-core Processor 1.9GHz 384 ...

  3. pyqt5离线安装教程

    目前总结的安装pyqt5,需要的离线安装包,除了每一个包要跟系统版本适配之外,还要考虑包跟包之间的适配.pyqt5跟它开头的一些包要保持是同一个版本,至少有2个小数点的位数是一样的才行,qt5跟它开头 ...

  4. 【Java】自定义mybatis

    处理 sql in 多条件搜索时 单引号双引号问题 StringBuilder pidNoZeroIds = new StringBuilder(); Integer numTmp = 0; for ...

  5. ubuntu 安装SVN

    s1: [sudo apt-get install subversion] s2:本地新建一个文件夹如SVN,在该文件夹下打开终端输入命令[svn co https://xxx/svn/xxx --u ...

  6. 禁止Edge升级

    管理员命令行运行: 用法:EdgeChromium_Blocker.cmd [<machine name>] [/B][/U][/H] 1.本机禁用更新: EdgeChromium_Blo ...

  7. 题解 UVA10859 【Placing Lampposts】

    交了N次,重构一次代码终于过了..... 题意:一片森林,1.输出占领所有边需要的最小的路灯个数 2.输出两端点均被占领的边的条数 3.只有一端被占领的边的条数 还是比较简单的 开始的时候思路不够清晰 ...

  8. PVE使用vlan

  9. NGAC下一代访问控制

    NGAC,即下一代访问控制,采用将访问决定数据建模为图形的方法.NGAC 可以实现系统化.策略一致的访问控制方法,以高精细度授予或拒绝用户管理能力. 在这张图中,我们可以看到 /hr-docs 文件夹 ...

  10. C#连Mysql数据库报错 SSL Connection error

    MySql.Data.MySqlClient.MySqlException (0x80004005): SSL Connection error. ---> System.AggregateEx ...