1.问题描述

输入一个链表的头结点,反转链表后,输出新链表的表头。

2. 解决思路

1)链表是空的:直接返回空的头结点;

2)链表中只有一个结点:直接返回原头结点;

3)链表中有大于2个以上的结点:需要三个指针来辅助

a)头结点的下一个结点为空结点NULL;

b)要对每个结点逐一遍历并反转,需要辅助指针node1来遍历;

c)由于需要改变每个结点的下一个结点,所以在改变方向之前需要保存它的下一个结点,使用node2;

d)node1和node2每次都需要更新,指向原来链表的下一个,但是它们指向的下一个已经发生了改变,所以需要临时的变量node3来辅助它们更新;是否更新就看node2是否到了最后一个。

e)返回node1即为新的链表表头。

3.代码实现

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:ListNode* ReverseList(ListNode* head) {if(head == NULL || head->next == NULL)return head;ListNode* node1;ListNode* node2;node1 = head->next;head->next = NULL;node2 = node1->next;       node1->next = head;while(node2 != NULL){ListNode* node3 = node2->next;node2->next = node1;node1 = node2;node2 = node3;}return node1;}
};

剑指offer 24. 反转链表相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java

    <LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...

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

    剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...

  3. 【双100%解法】剑指 Offer 24. 反转链表

    立志用最少的代码做最高效的表达 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: ...

  4. 剑指 Offer 24.反转链表

    题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 题目链接:反转链表 示例: 输入: 1->2->3->4->5->NULL 输出: 5-& ...

  5. Leetcode 剑指 Offer 24. 反转链表 (每日一题 20210823)

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...

  6. 剑指 Offer 24. 反转链表(C语言)

    **定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3- ...

  7. 【算法】剑指 Offer 24. 反转链表

    1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof 定义一个函数,输入一个链表的头节点, ...

  8. 剑指 Offer 24. 反转链表java

    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-&g ...

  9. 剑指Offer 24 反转链表

    迭代的思想就是利用pre和cur两个指针,然后逐步向后遍历 # Definition for singly-linked list. # class ListNode: # def __init__( ...

最新文章

  1. solr7.6 安装配置
  2. 2021年软考考试时间公布
  3. 【专题介绍】视频内容生产与消费创新(Part1)
  4. 南工大计算机学院,江南-欢迎访问湖北工业大学计算机学院官方网站
  5. MOON.ORM 3.5 MYSQL的配置及使用方法(最新版免费下载使用.欢迎加盟)
  6. 8086汇编学习小记-1
  7. Struts2 文件上传 文件类型 大小过滤
  8. JetBrains:更改webstrom、IDEA等主题
  9. 程序设计导引及在线实践之麦森数
  10. 无人深空java修改器,无人深空next存档修改-无人深空next存档修改器下载v1.5.0最新版-西西软件下载...
  11. R语言之导入数据源(二)
  12. Android市场变化令微软很受伤 专利授权收入锐减26%
  13. ios vue 添加本地音乐_VUE怎么添加音乐 本地音乐添加教程
  14. 【论文笔记】ARBITRAR: User-Guided API Misuse Detection
  15. 【排序算法】快速排序的分析改进
  16. 计算机中什么不可打印,电脑不能打印怎么办
  17. 凡人修c传(四)翻牌子(POJ - 3279 - Fliptile)(思维+dfs)
  18. Python 基于tkinter和sqlite3的会员管理系统
  19. 2021澳洲大学计算机专业排名,澳洲纽卡斯尔大学UoN计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...
  20. java 网络编程(二) tcp传输实现客户端和服务端进行信息交流

热门文章

  1. 一次激光纠正近视手术引发的血案 【 激光纠正近视手术 本世纪最大骗局 】
  2. Android7工程模式,安卓手机怎么进工程模式 安卓手机进工程模式教程【详解】
  3. 求解TSP的改进模拟退火算法研究
  4. 【2012Esri中国用户大会讲座】ArcGIS 10.1 for Server 安全机制(1)用户角色权限
  5. 520表白html实现3D动态相册,换成女朋友照片
  6. POI实现Word文件转PDF
  7. 字符编码--字符与数字的对应
  8. 基于仿生机理的内生安全防御体系研究
  9. 树下阅读用户隐私协议
  10. mysql导出教程_MySQL导出导入数据实现教程