力扣 中等 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;
    }
}
相关推荐
Gofarlic_oms16 分钟前
Adams许可排队严重?不想买新许可,闲置回收立即可用
java·大数据·服务器·开发语言·人工智能
mask哥8 分钟前
15种算法模式java实现详解
java·算法·力扣
大大杰哥16 分钟前
leetcode hot100(2)双指针,滑动窗口
数据结构·算法·leetcode
skilllite作者17 分钟前
GEO 是什么:从搜索引擎到「对话式答案」的信息可见性
java·前端·笔记·安全·搜索引擎·agentskills
是宇写的啊20 分钟前
SpringBoot 统一功能处理
java·spring boot·后端
风筝在晴天搁浅20 分钟前
LeetCode CodeTop 113.路径总和Ⅱ
算法·leetcode
等....21 分钟前
Spring Boot多模块项目部署
java·spring boot·后端
水木流年追梦25 分钟前
【python因果库实战26】逆概率加权模型1
开发语言·python·算法·leetcode
今儿敲了吗31 分钟前
链表篇(五)——链表中间结点
数据结构·笔记·算法·链表
SiYuanFeng36 分钟前
面试大厂leetcode重点题型简洁明快复习(dfs/bfs,动态规划,链表,滑动窗口/双指针,回溯,ACM型输入输出,二分)
leetcode·面试·coding