剑指offer T26 重排链表
题目:
思路:
这道题有点麻烦。
首先先找到这个链表的中点(快慢指针同时走,快指针走到尽头的时候,慢指针正好是链表的中点)
然后拆分成两个链表,把第二个链表反转
最后是在按要求把这两个链表接上
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 重排链表相关推荐
- 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java
<LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...
- 剑指Offer:反转链表【24】
剑指Offer:反转链表[24] 题目描述 输入一个链表,反转链表后,输出新链表的表头. 解题分析 这道题我才发现我是属于那种真的笨,图都画出来了流程写不出来.看了别人的代码,总觉得自己差一步. 这也 ...
- 剑指offer之找到链表里面包含环的入口节点
1 问题 剑指offer之找到链表里面包含环的入口节点,比如 // node7<-node6 <-node5// | |//head->node1->node2->nod ...
- 【LeetCode】剑指 Offer 35. 复杂链表的复制
[LeetCode]剑指 Offer 35. 复杂链表的复制 文章目录 [LeetCode]剑指 Offer 35. 复杂链表的复制 package offer;import java.util.Ar ...
- 【LeetCode】剑指 Offer 18. 删除链表的节点
[LeetCode]剑指 Offer 18. 删除链表的节点 文章目录 [LeetCode]剑指 Offer 18. 删除链表的节点 一.双指针 一.双指针 本题删除值为 val 的结点需分为两步: ...
- 【LeetCode】剑指 Offer 24. 反转链表
剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...
- 【算法】剑指 Offer 18. 删除链表的节点
1.概述 剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: he ...
- 【剑指 Offe】剑指 Offer 18. 删除链表的节点
目录标题 算法汇总 题目 关键点 代码 1.解体方法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码地址链接:力 ...
- 剑指 Offer 35. 复杂链表的复制
剑指 Offer 35. 复杂链表的复制 题目 题目链接 解题思路 题目理解 解题思路 具体代码 题目 题目链接 https://leetcode-cn.com/problems/fu-za-lian ...
- 剑指 Offer 22(链表4).链表中的倒数第k个结点
剑指 Offer 22(链表4).链表中的倒数第k个结点 问题描述: 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. 例如,一个链 ...
最新文章
- Autools学习总结(一)
- golang中的strings.SplitAfter
- 经典C语言程序100例之六一
- 游戏与算法的必经之路
- Linux加密框架 crypto RC4
- 6万人同时离场,竟然一点都不挤?原来用了这个神器
- mosquitto mysql_在laravel中使用Mosquitto-PHP
- 【Elasticsearch】 Elasticsearch Suggester 自动纠错 详解
- PHP 是生还是死?
- Android 解决调用系统相册打不开图片 DecodeServices报解码错误
- matlab仿真三相变压器,三相变压器励磁涌流的MATLAB仿真与分析
- Flink1.13.0 + Hudi 0.11.1 + Hive2.1.1 + presto0.273.3 + yanagishima 18.0
- 台式计算机可以连接蓝牙吗,蓝牙耳机怎么连接台式电脑?台式电脑连接蓝牙耳机的方法...
- 以某SCI期刊为例说明该期刊投稿须知和流程
- 百度、百事、大众、脸书、WeWork、领航等公司高管变动
- 在线云html排版,云标签,关键字图排版 html5 canvas版
- langconv 安装 | python繁体 简体转换
- 读取身份证信息系统的程序编写
- 《 Python程序设计项目案例》— 用Python开发的基于TCP通讯协议的私人聊天室 (期末大作业、结课作业、课程设计、毕业设计)
- 2013---平静的心态迎接新的开始
热门文章
- 2021年山西省粮食种植面积增长,夏粮获大丰收,但因秋粮遭遇自然灾害粮食产量下降[图]
- 零基础入门网络,静态LACP链路捆绑详解,带宽扩容,链路冗余备份
- 计算机常用的辅存储器是,计算机常用的辅存储器有
- 裂变新玩法 2022年京东双十一红包如何领取?
- 创业板首批企业或节前招股 新公布6家上会公司
- matlab2015使用dsolve错误,matlab - 当变量乘以常数时,dsolve中的错误(R2011a) - 堆栈内存溢出...
- python实现堆栈 后进先出 LIFO
- 【Mockplus教程】账号和购买
- html图片加标题加链接,手机移动网页制作:插入图片、标题、文字链接
- 互联网发展的三个阶段