你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例 1:

给定链表 1->2->3->4, 重新排列为 1->4->2->3.
示例 2:

给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.

思路:分成两个链表,第二个逆置,然后插入即可。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
public void reorderList(ListNode head) {if (head == null || head.next == null || head.next.next == null) {return;}//找中点,链表分成两个ListNode slow = head;ListNode fast = head;while (fast.next != null && fast.next.next != null) {slow = slow.next;fast = fast.next.next;}ListNode newHead = slow.next;slow.next = null;//第二个链表倒置newHead = reverseList(newHead);//链表节点依次连接while (newHead != null) {ListNode temp = newHead.next;newHead.next = head.next;head.next = newHead;head = newHead.next;newHead = temp;}}private ListNode reverseList(ListNode head) {if (head == null) {return null;}ListNode tail = head;head = head.next;tail.next = null;while (head != null) {ListNode temp = head.next;head.next = tail;tail = head;head = temp;}return tail;
}

leetcode143 重排链表相关推荐

  1. Leetcode143. 重排链表 (golang描述)

    问题描述 思路简述 链表的题目主要考察coding基本功,思路难度都不算太大,这道的思路也很简单,而且链表的题目如果出现在面试一般都要求原地操作空间复杂度O(1),尽量不用容器: 首先快慢指针找到链表 ...

  2. 【每日一算法】重排链表

    微信改版,加星标不迷路! 每日一算法-重排链表 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→L ...

  3. LeetCode-笔记-143. 重排链表

    LeetCode-笔记-143. 重排链表 143. 重排链表 给定一个单链表 L:L0→L1→-→L**n-1→Ln , 将其重新排列后变为: L0→L**n→L1→L**n-1→L2→L**n-2 ...

  4. Java多重链表_Java实现 LeetCode 143 重排链表

    143. 重排链表 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→- 你不能只是单纯的改变节点内部的值,而是需要实际的进行节 ...

  5. 【CCCC】L2-022 重排链表 (25分),,链表遍历

    problem L2-022 重排链表 (25分) 给定一个单链表 L ​1 ​​ →L ​2 ​​ →⋯→L ​n−1 ​​ →L ​n ​​ ,请编写程序将链表重新排列为 L ​n ​​ →L ​ ...

  6. 重排链表-c语言链表法解决

    重排链表-c语言链表法解决 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → - → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → L ...

  7. 【L2-022 重排链表】天梯赛L2系列详细解答

    天梯赛L2-022 重排链表 题目详情: 输入样例: 00100 6 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 6823 ...

  8. 【区块反转】【链表合并】【反转链表】【链表元素分类】【链表去重】【重排链表】

    目录 说明: 1110 区块反转 输入格式: 输出格式: 输入样例: 输出样例: 1105 链表合并 输入格式: 输出格式: 输入样例: 输出样例: 1025 反转链表 输入格式: 输出格式: 输入样 ...

  9. Leetcode之重排链表

    文章目录 前言 一.线性表 二.寻找链表中点 + 链表逆序 + 合并链表 总结 前言 题目如下: 重排链表(点我) 一.线性表 因为链表不能下标访问元素,所以我们不能随机访问链表中的元素,因此我们采用 ...

最新文章

  1. 油品调和计算软件_油品调合利器——中控supBlend油品在线优化调合解决方案
  2. Javascript+xmlhttp调用Webservice
  3. Qt 设置当前窗口出现在左右窗口的最前面
  4. python代码300行程序_python小工具,15行代码秒出工资条
  5. iOS 13.2“杀后台”严重 被用户狂喷:专业“杀微信”
  6. 无线视频服务器家里好用吗,短视频APP为什么选择国内大带宽服务器?国内服务器有什么优势...
  7. CRM客户关系管理系统的设计与实现
  8. k8s技术预研11--kubernetes网络原理
  9. 详谈APP移动端 - 加壳与脱壳
  10. 《经济的律动》书中的精髓:如何通过“去杠杆”和“互联网金融”现象,更好地理解经济发展的方向?
  11. Excel的查找和引用函数:VLOOKUP、OFFSET、MATCH、INDEX、INDIRECT
  12. 【国内SEO大牛】网站统计显示被违禁词搜索进来原因
  13. Spark DataFrame 写入HIve 出现HiveFileFormat`. It doesn't match the specified format `ParquetFileFormat`
  14. word单元格自动换行,适应文字
  15. 软件测试黑盒测试代码,软件测试黑盒测试代码.doc
  16. 二叉树Ⅰ · 树型结构 · 二叉树 · 满二叉树 · 完全二叉树 · 二叉树的性质 · 二叉树的存储
  17. docker和docker-compose部署
  18. Vultr删除信用卡
  19. mybatis QueryWrapper的条件构造之apply、last
  20. 30多个Flatsome主题优秀电商网站案例

热门文章

  1. Ubuntu 13.10配置root登录
  2. YUV422格式信号格式(以备学习之用)
  3. 开机未发现nvidia控制面板_修改这几个选项,就能提升你的开机速度
  4. 怎么形容智能冰激凌机器人_有关于形容描写冰激凌的句子及图片
  5. arcgis点按角度生成固定长度线
  6. 【转】人工智能-1.2.2 神经网络是如何进行预测的
  7. .net开源框架简介和通用技术选型建议
  8. Java Web(五) JSP详解(四大作用域九大内置对象等)
  9. Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性
  10. PWN-PRACTICE-BUUCTF-18