[LC]206题 Reverse Linked List (反转链表)(链表)
①英文题目
Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
②中文题目
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
③思路
用头插法(我暂时还不确定头插法是个啥,尾插法是个啥具体流程)
同tempnode率先保存住正确的指向,再改掉curr.next的指向。再把已经被“改动过的curr”给赋值给pre,
④代码
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre=null;
ListNode curr;
ListNode tempnode=null;
curr=head;
while(curr!=null){
tempnode=curr.next;
curr.next=pre; //每个循环里有4步,这4步里,就只有这一行是在改指针指向,即让curr.next指向pre。
pre=curr;
curr=tempnode;
} //4步总结下来就是先用tempnode保存住curr,next,再把curr.next指向pre(curr.next不再指向原来的某某某),
return pre; //接上一句,然后,把已经更改过指向的curr赋值并覆盖掉原来的pre,最后把tempnode保存的以前的curr.next
} //赋给如今的curr。
}
⑤推导过程(画图)
我只推导了第1、2次循环,如下

⑥学到的东西
这个跟高中时学的杯子换水的过程有点相似。
要注意一个顺序,先把curr.next给改了指向,再把改动后的这次这个curr赋给pre。
最后返回的是pre。
[LC]206题 Reverse Linked List (反转链表)(链表)的更多相关文章
- [LeetCode] 206. Reverse Linked List ☆(反转链表)
Reverse Linked List 描述 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3-> ...
- [算法题] Reverse Linked List II
题目内容 题目来源:LeetCode Reverse a linked list from position m to n. Do it in-place and in one-pass. For e ...
- LeetCode算法题-Reverse Linked List(Java实现)
这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...
- LeetCode(206) Reverse Linked List
题目 Reverse a singly linked list. click to show more hints. Hint: A linked list can be reversed eithe ...
- [LeetCode] 92. Reverse Linked List II 反向链表II
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...
- [LeetCode] Reverse Linked List II 倒置链表之二
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...
- [LeetCode] 92. Reverse Linked List II 倒置链表之二
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...
- [leetcode]206. Reverse Linked List反转链表
Reverse a singly linked list. Input: 1->2->3->4->5->NULL Output: 5->4->3->2- ...
- 206 Reverse Linked List 反转链表
反转一个单链表.进阶:链表可以迭代或递归地反转.你能否两个都实现一遍?详见:https://leetcode.com/problems/reverse-linked-list/description/ ...
随机推荐
- .gitignore实现忽略提交
- Spring Boot入门(二):获取配置文件值
本篇博客主要讲解下在Spring Boot中如何获取配置文件的值. 1. 使用yaml配置文件 Spring Boot默认生成的配置文件为application.properties,不过它也支持ya ...
- Jetcache
转存 Jetcache https://github.com/alibaba/jetcache/wiki/GettingStarted_CN
- vue.js 使用 vue-router 修改页面标题
module.exports = { name: 'myComponent', data: {} route{ data: function(){ document.title = "页面标 ...
- 防抖与节流 & 若每个请求必须发送,如何平滑地获取最后一个接口返回的数据
博客地址:https://ainyi.com/79 日常浏览网页中,在进行窗口的 resize.scroll 或者重复点击某按钮发送请求,此时事件处理函数或者接口调用的频率若无限制,则会加重浏览器的负 ...
- vue-cli安装方法
vue-cli:vue文件,css文件,less文件,图片--->htmles6代码--->es5代码 template标签里面,只能有1个跟元素 script标签里面导入组件import ...
- js实现一个简单的链式操作
如何实现一个链式操作 function person() {} person.prototype = { setname: function(name) { this.name = name retu ...
- (23)ASP.NET Core EF关系数据库建模
1.简介 一般而言,本部分中的配置适用于关系数据库.安装关系数据库提供程序时,此处显示的变为可用扩展方法(原因在于共享的Microsoft.EntityFrameworkCore.Relational ...
- Mongoose 基本用法
1. SchemaTypes数据类型 数据类型 描述 String 字符串 Number 数字 Date 日期 Boolean 布尔值 Mixed 混合 Objectid 对象ID Array 数组 ...
- [Hadoop]HDFS机架感知策略
HDFS NameNode对文件块复制相关所有事物负责,它周期性接受来自于DataNode的HeartBeat和BlockReport信息,HDFS文件块副本的放置对于系统整体的可靠性和性能有关键性影 ...