剑指offer 24. 反转链表
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. 反转链表相关推荐
- 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java
<LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...
- 【LeetCode】剑指 Offer 24. 反转链表
剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...
- 【双100%解法】剑指 Offer 24. 反转链表
立志用最少的代码做最高效的表达 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: ...
- 剑指 Offer 24.反转链表
题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 题目链接:反转链表 示例: 输入: 1->2->3->4->5->NULL 输出: 5-& ...
- Leetcode 剑指 Offer 24. 反转链表 (每日一题 20210823)
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...
- 剑指 Offer 24. 反转链表(C语言)
**定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3- ...
- 【算法】剑指 Offer 24. 反转链表
1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof 定义一个函数,输入一个链表的头节点, ...
- 剑指 Offer 24. 反转链表java
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-&g ...
- 剑指Offer 24 反转链表
迭代的思想就是利用pre和cur两个指针,然后逐步向后遍历 # Definition for singly-linked list. # class ListNode: # def __init__( ...
最新文章
- solr7.6 安装配置
- 2021年软考考试时间公布
- 【专题介绍】视频内容生产与消费创新(Part1)
- 南工大计算机学院,江南-欢迎访问湖北工业大学计算机学院官方网站
- MOON.ORM 3.5 MYSQL的配置及使用方法(最新版免费下载使用.欢迎加盟)
- 8086汇编学习小记-1
- Struts2 文件上传 文件类型 大小过滤
- JetBrains:更改webstrom、IDEA等主题
- 程序设计导引及在线实践之麦森数
- 无人深空java修改器,无人深空next存档修改-无人深空next存档修改器下载v1.5.0最新版-西西软件下载...
- R语言之导入数据源(二)
- Android市场变化令微软很受伤 专利授权收入锐减26%
- ios vue 添加本地音乐_VUE怎么添加音乐 本地音乐添加教程
- 【论文笔记】ARBITRAR: User-Guided API Misuse Detection
- 【排序算法】快速排序的分析改进
- 计算机中什么不可打印,电脑不能打印怎么办
- 凡人修c传(四)翻牌子(POJ - 3279 - Fliptile)(思维+dfs)
- Python 基于tkinter和sqlite3的会员管理系统
- 2021澳洲大学计算机专业排名,澳洲纽卡斯尔大学UoN计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...
- java 网络编程(二) tcp传输实现客户端和服务端进行信息交流