题目:

思路:
这道题有点麻烦。
首先先找到这个链表的中点(快慢指针同时走,快指针走到尽头的时候,慢指针正好是链表的中点)
然后拆分成两个链表,把第二个链表反转
最后是在按要求把这两个链表接上

package 剑指offer;public class t26重排链表 {//把链表拆分成两段public void reorderList(ListNode head) {//哨兵节点ListNode dummy = new ListNode(0);dummy.next = head;//快慢指针ListNode fast = dummy;ListNode slow = dummy;//遍历while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next;if (fast.next != null) {fast = fast.next;}}//遍历到最后,fast值指向链表的最后一个节点//low指针指向链表的中间那个节点ListNode temp = slow.next;slow.next = null;//链接起来link(head, reverseList(temp), dummy);}//联系链表的操作private void link(ListNode node1, ListNode node2, ListNode head) {ListNode prev = head;while (node1 != null && node2 != null) {//先储存起node1的下一个节点//之所以需要先把node1的下一个节点储存,是因为node1接在node2后,无法再执行node1=node1.nextListNode temp = node1.next;prev.next = node1;node1.next = node2;prev = node2;node1 = temp;node2 = node2.next;}if (node1 != null) {prev.next = node1;}}private ListNode reverseList(ListNode first) {ListNode prev = null;ListNode cur = first;ListNode head = null;while (cur != null) {ListNode next = cur.next;cur.next = prev;if (next == null) {head = cur;}prev = cur;cur = next;}return head;}}

剑指offer T26 重排链表相关推荐

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

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

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

    剑指Offer:反转链表[24] 题目描述 输入一个链表,反转链表后,输出新链表的表头. 解题分析 这道题我才发现我是属于那种真的笨,图都画出来了流程写不出来.看了别人的代码,总觉得自己差一步. 这也 ...

  3. 剑指offer之找到链表里面包含环的入口节点

    1 问题 剑指offer之找到链表里面包含环的入口节点,比如 // node7<-node6 <-node5// | |//head->node1->node2->nod ...

  4. 【LeetCode】剑指 Offer 35. 复杂链表的复制

    [LeetCode]剑指 Offer 35. 复杂链表的复制 文章目录 [LeetCode]剑指 Offer 35. 复杂链表的复制 package offer;import java.util.Ar ...

  5. 【LeetCode】剑指 Offer 18. 删除链表的节点

    [LeetCode]剑指 Offer 18. 删除链表的节点 文章目录 [LeetCode]剑指 Offer 18. 删除链表的节点 一.双指针 一.双指针 本题删除值为 val 的结点需分为两步: ...

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

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

  7. 【算法】剑指 Offer 18. 删除链表的节点

    1.概述 剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: he ...

  8. 【剑指 Offe】剑指 Offer 18. 删除链表的节点

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码地址链接:力 ...

  9. 剑指 Offer 35. 复杂链表的复制

    剑指 Offer 35. 复杂链表的复制 题目 题目链接 解题思路 题目理解 解题思路 具体代码 题目 题目链接 https://leetcode-cn.com/problems/fu-za-lian ...

  10. 剑指 Offer 22(链表4).链表中的倒数第k个结点

    剑指 Offer 22(链表4).链表中的倒数第k个结点 问题描述: 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. 例如,一个链 ...

最新文章

  1. Autools学习总结(一)
  2. golang中的strings.SplitAfter
  3. 经典C语言程序100例之六一
  4. 游戏与算法的必经之路
  5. Linux加密框架 crypto RC4
  6. 6万人同时离场,竟然一点都不挤?原来用了这个神器
  7. mosquitto mysql_在laravel中使用Mosquitto-PHP
  8. 【Elasticsearch】 Elasticsearch Suggester 自动纠错 详解
  9. PHP 是生还是死?
  10. Android 解决调用系统相册打不开图片 DecodeServices报解码错误
  11. matlab仿真三相变压器,三相变压器励磁涌流的MATLAB仿真与分析
  12. Flink1.13.0 + Hudi 0.11.1 + Hive2.1.1 + presto0.273.3 + yanagishima 18.0
  13. 台式计算机可以连接蓝牙吗,蓝牙耳机怎么连接台式电脑?台式电脑连接蓝牙耳机的方法...
  14. 以某SCI期刊为例说明该期刊投稿须知和流程
  15. 百度、百事、大众、脸书、WeWork、领航等公司高管变动
  16. 在线云html排版,云标签,关键字图排版 html5 canvas版
  17. langconv 安装 | python繁体 简体转换
  18. 读取身份证信息系统的程序编写
  19. 《 Python程序设计项目案例》— 用Python开发的基于TCP通讯协议的私人聊天室 (期末大作业、结课作业、课程设计、毕业设计)
  20. 2013---平静的心态迎接新的开始

热门文章

  1. 2021年山西省粮食种植面积增长,夏粮获大丰收,但因秋粮遭遇自然灾害粮食产量下降[图]
  2. 零基础入门网络,静态LACP链路捆绑详解,带宽扩容,链路冗余备份
  3. 计算机常用的辅存储器是,计算机常用的辅存储器有
  4. 裂变新玩法 2022年京东双十一红包如何领取?
  5. 创业板首批企业或节前招股 新公布6家上会公司
  6. matlab2015使用dsolve错误,matlab - 当变量乘以常数时,dsolve中的错误(R2011a) - 堆栈内存溢出...
  7. python实现堆栈 后进先出 LIFO
  8. 【Mockplus教程】账号和购买
  9. html图片加标题加链接,手机移动网页制作:插入图片、标题、文字链接
  10. 互联网发展的三个阶段