力扣 中等 143.重排链表

文章目录

题目介绍


题解

java 复制代码
class Solution {
    public void reorderList(ListNode head) {
        ListNode mid = middleNode(head);
        ListNode head2 = reverseList(mid);
        while (head2.next != null) {
            ListNode nxt = head.next;
            ListNode nxt2 = head2.next;
            head.next = head2;
            head2.next = nxt;
            head = nxt;
            head2 = nxt2;
        }
    }

    // 876. 链表的中间结点
    private ListNode middleNode(ListNode head) {
        ListNode slow = head, fast = head;
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }

    // 206. 反转链表
    private ListNode reverseList(ListNode head) {
        ListNode pre = null, cur = head;
        while (cur != null) {
            ListNode nxt = cur.next;
            cur.next = pre;
            pre = cur;
            cur = nxt;
        }
        return pre;
    }
}
相关推荐
放荡不羁的野指针6 分钟前
leetcode150题-滑动窗口
数据结构·算法·leetcode
阿蒙Amon10 分钟前
C#每日面试题-Thread.Sleep和Task.Delay的区别
java·数据库·c#
Haooog12 分钟前
AI应用代码生成平台
java·学习·大模型·langchain4j
爬山算法25 分钟前
Hibernate(67)如何在云环境中使用Hibernate?
java·后端·hibernate
小龙报28 分钟前
【C语言进阶数据结构与算法】单链表综合练习:1.删除链表中等于给定值 val 的所有节点 2.反转链表 3.链表中间节点
c语言·开发语言·数据结构·c++·算法·链表·visual studio
黎雁·泠崖35 分钟前
Java抽象类与接口:定义+区别+实战应用
java·开发语言
2301_7925800038 分钟前
xuepso
java·服务器·前端
露天赏雪1 小时前
Java 高并发编程实战:从线程池到分布式锁,解决生产环境并发问题
java·开发语言·spring boot·分布式·后端·mysql
夏幻灵1 小时前
面向对象编程综合实战
java
TracyCoder1231 小时前
LeetCode Hot100(13/100)——238. 除了自身以外数组的乘积
算法·leetcode