首页 > 其他分享 >LeetCode.206 反转链表

LeetCode.206 反转链表

时间:2023-01-14 11:36:39浏览次数:45  
标签:pre LeetCode.206 ListNode cur val 反转 next 链表 指针

1.题目:

给你单链表的头节点 ​​head​​ ,请你反转链表,并返回反转后的链表

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
 *     int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre = null;//定义一个pre指针指向头结点的前一个null,因为反转之后这里就是头结点就是尾结点,指向null
ListNode cur = head;//定义一个指针cur指向头结点

while(cur!=null){//循环条件是当cur指针指向null,pre指向尾结点时就停止
ListNode temp = cur.next;//定义一个临时指针先储存cur下一个结点,防止指针反转之后找不到,注意临时指针是会随着cur的变化而变化的,不能定义在循环外面
cur.next = pre;//先反转指针
pre = cur;//移动pre指针
cur = temp;//移动cur指针

}
return pre;

}
}

2.代码实现


3.图解:

LeetCode.206 反转链表_头结点






标签:pre,LeetCode.206,ListNode,cur,val,反转,next,链表,指针
From: https://blog.51cto.com/u_15806469/6007557

相关文章

  • 代码随想录算法训练营第四天|24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面
    一、参考资料两两交换链表中的节点题目链接/文章讲解/视频讲解:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD......
  • 代码随想录算法训练营第三天 链表 | 203.移除链表元素 | 707.设计链表 | 206.反转链表
    链表链表是一种线性结构,不同于使用连续空间的储存结构(vector,数组,string等),链表在内存中的储存方式并不是连续分布的,分配散乱,分配机制取决于操作系统的内存管理。C++中定义......
  • 代码随想录算法训练营第三天|链表理论基础 ,203.移除链表元素,707.设计链表,206.反转链表
    一、参考资料链表理论基础文章链接:https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html移除链表元素题目链接/文章讲解/视......
  • LeetCode.203 移除链表元素
    1.题目:给你一个链表的头节点 ​​head​​ 和一个整数 ​​val​​ ,请你删除链表中所有满足 ​​Node.val==val​​ 的节点,并返回 新的头节点 。 示例:输入:head=......
  • 《数据结构 - C语言》单链表
    目录结构定义初始化建立清空求表长判断是否为空表取值查找插入删除销毁遍历打印测试结构定义#include<stdio.h>#include<malloc.h>#include<stdlib.h>#defineOK......
  • 单链表的创建
    单链表的创建大家好,今天来详细说一下单链表的创建过程。单链表是我们在学习数据结构时见到的第一种动态内存分配的结构,而这也是单链表和数组之间最大的区别,因为数......
  • 【LeetCode链表#6】移除链表元素
    移除链表元素题目力扣题目链接(opensnewwindow)题意:删除链表中等于给定值val的所有节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输......
  • 块状链表详解
    引入块状链表,顾名思义,就是把分块和链表结合起来的神奇数据结构。分块区间操作复杂度优秀,但是不能支持插入/删除操作。链表单点插入删除复杂度优秀,但是不能支持大......
  • LeetCode刷题(1)~整数反转
    题目描述给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入:123输出:321示例2:输入:-123输出:-321示例3:输入:120输出:21注意:假......
  • 3.IOC控制反转
    IOC本质  控制反转loc(lnversionofControl),是一种设计思想,DI(依赖注入)是实现loC的一种方法,也有人认为DI只是IOC另一种说法。没有IOC的程序中,我们使用面向对象编程,对象......