剑指Offer:反转链表【24】

题目描述

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

解题分析

这道题我才发现我是属于那种真的笨,图都画出来了流程写不出来。看了别人的代码,总觉得自己差一步。

这也是链表题的一个特点,指针的复杂变化。首先毋庸置疑肯定要有三个指针,他们的排列位置如下图第一行所示。

然后第二个指针,即cur的next一转,指向第一个,即pre,这是就会出现二指向三的指针断裂,所以tmp指针需要时刻指向cur指针的下一个。

Java题解

 public ListNode ReverseList(ListNode head) {if(head==null)return null;ListNode reversedHead=null;ListNode current=head;ListNode tmp=null;ListNode pre=null;while(current!=null){tmp=current.next;  //tmp指针时刻指向cur的下一个节点位置current.next=pre;  //cur下一个位置指向前一个节点if(tmp==null)  //如果结果为空,返回当前节点,即为倒置后的头结点reversedHead=current;pre=current;  //pre指向当前节点current=tmp;    //cur指向下一个节点,然后重复开始此过程}return reversedHead;}

  

转载于:https://www.cnblogs.com/MrSaver/p/9219422.html

剑指Offer:反转链表【24】相关推荐

  1. 剑指offer -- 反转链表

    先摆明重要性 剑指offer -- 反转链表  校招原题 解法一:迭代 翻转 即 将所有节点的next指针指向前驱节点. 由于是单链表,我们在迭代时不能直接找到前驱节点,所以我们需要一个额外的指针保存 ...

  2. 【链表】剑指offer:反转链表

    描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头. 要求:空间复杂度 O(1),时间复杂度 O(n) . 当输入链表{1 ...

  3. 剑指offer反转链表(C++实现|测试用例|迭代法和递归法)

    方法1:迭代法 代码: #include<iostream> using namespace std; struct ListNode { int val; ListNode *next; ...

  4. 【每日一题】剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点

  5. 【LeetCode】剑指 Offer 22. 链表中倒数第k个节点

    [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 文章目录 [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 一.遍历 二.双指针 总结 一.遍历 先遍历统计链表长 ...

  6. 剑指offer——面试题24:二叉搜索树的后序遍历序列

    剑指offer--面试题24:二叉搜索树的后序遍历序列 Solution1: 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二 ...

  7. 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)

    19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...

  8. 每日一题——剑指 Offer24反转链表

    如果您是第一次看我写的博客,可以给我点个赞并关注我吗,我会持续分享更多有意思的干货. 文章目录 1 题目 2 思路 3 代码 4 小结 1 题目 剑指 Offer 24. 反转链表 定义一个函数,输入 ...

  9. 剑指Offer #14 链表中倒数第k个结点(快慢指针) | 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 节点结构如下: public class ListNode {int val ...

  10. 剑指offer之链表续

    面试题17:合并两个有序链表 这道题用递归,很容易实现,但是一定要注意代码鲁棒性 下面是源码: public static ListNode MergeList(ListNode head1,List ...

最新文章

  1. HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程
  2. 课程第七天内容《基础交换七》
  3. Matlab实现字符串分割
  4. SwiftUI优秀文章经典案例制作简易的新闻列表Demo
  5. NO.1 python_人工智能_学习路线
  6. 01 Spring学习之-事件驱动eventListener
  7. python3.7怎么设置中文_Python3.7中文字符编码问题
  8. 小米MIX4曝光,颜值真不错
  9. MTK之UART串口收发数据
  10. 子模的性质(submodular)
  11. java2wsdl_Java2WSDL之java实现
  12. uniapp实现签名板效果
  13. hbase的协处理器
  14. 沉没成本效应:每个人终其一生的断舍离
  15. [杂记]就《10.30日华为HR体验官胡玲在心声论坛爆料内部HR腐败行为》有感
  16. java 判断exception类型_Java中获取Exception的详细信息
  17. managed, unmanaged
  18. 小米id锁状态查询_揭秘:苹果隐藏ID到底是什么?你可能就被坑了!
  19. linux 16.04 安装与使用vscode试水
  20. Windows/Linux在Python下使用Metis

热门文章

  1. 【转】Linux添加/删除用户和用户组
  2. 山西农信社计算机知识,山西人事考试网 山西农信社考试计算机知识高频考点(二)...
  3. php use,php use和include区别总结
  4. matlab循环标注,for循环
  5. qvector 结构体排序_C++结构体的应用_YCOJ
  6. 阿里内网热搜开发者工具在线教程推荐
  7. Serverless 架构下的服务优雅下线实践
  8. Dubbo 云原生之路:ASF 毕业一周年、3.0 可期
  9. 阿里云携手微软与 Crossplane 社区发布 OAM Kubernetes 标准实现与核心依赖库
  10. Python中字符串的介绍以及常见操作