奇偶链表00

题目链接

奇偶链表

题目描述


注意点

  • 在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题
  • 偶数组和奇数组内部的相对顺序应该与输入时保持一致

解答思路

  • 奇数组的头节点是head,偶数组的头节点是head.next,关键是要改变每个节点的next指针及找到奇数组的尾节点,注意在改变节点next指针时,不能将中间的节点忽略了

代码

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode oddEvenList(ListNode head) {if (head == null || head.next == null) {return head;}ListNode oddRoot = new ListNode();oddRoot.next = head;ListNode evenRoot = new ListNode();evenRoot.next = head.next;boolean isOdd = true;while (head != null) {ListNode tmp = head.next;if (head.next != null) {head.next = head.next.next;}// 找到了奇数尾节点if (isOdd && head.next == null) {head.next = evenRoot.next;}head = tmp;isOdd = !isOdd;}return oddRoot.next;}
}

关键点

  • 改变节点next指针时不要忽略中间节点
  • 找到奇数组的尾节点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/334103.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux习题2

解析:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存,使得每个进程看到的内存空间一致。 解析:所谓系统调用,就是内核提供的、功能十分强大的一系列的函数。这些系统调用是在内核中实现的&…

工程项目管理系统源码与Spring Cloud:实现高效系统管理与二次开发

随着企业规模的不断扩大和业务的快速发展,传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…

为什么企业上了ERP,效率反而更低?

“为什么上了ERP,效率反而更低?” 不知道这种疑惑是在什么情况下产生的? 毕竟一句“上了ERP,效率反而变低了”并不能概括所有可能的情况—— 是某个车间效率变低了,某条生产线效率变低了?还是企业整体效…

Java 求2个整数,3个整数 的 10等分比例值

10等份取整比 比如 1.5 : 4 : 4.5 会变成 1:4:5 ,当然小数后一位的四舍五入是向上还是向下去整,这个根据自己需要调整即可。 代码 : public static Integer getIntTenPerNum(Integer nu…

LeetCode 每日一题 Day 3334(hard)35 ||二进制枚举/单调栈/链表遍历

2397. 被列覆盖的最多行数 给你一个下标从 0 开始、大小为 m x n 的二进制矩阵 matrix ;另给你一个整数 numSelect,表示你必须从 matrix 中选择的 不同 列的数量。 如果一行中所有的 1 都被你选中的列所覆盖,则认为这一行被 覆盖 了。 形式…

【深度学习:SimCLR 】利用 SimCLR 推进自监督和半监督学习

【深度学习:SimCLR 】利用 SimCLR 推进自监督和半监督学习 SimCLR框架表现代码和预训练模型 最近,自然语言处理模型,如BERT和T5,已经表明,通过首先在大型未标记数据集上进行预训练,然后在较小的标记数据集上…

第三节课作业

复现: 对mmagic的理解

JAVA:解析Event事件机制与应用举例

1、简述 Java事件机制是一种基于观察者模式的设计模式,用于处理对象之间的松耦合通信。本篇技术博客将深入探讨Java事件机制的原理,并通过实际应用举例展示如何在项目中灵活利用该机制。 2、基本原理 Java事件机制基于观察者模式,包含以下…

2、UML类图

UML(Unified Modeling Language)统一建模语言,用来进行设计软件的可视化建模语言。 2.1 类图概述 类类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。类图是面向对象建模的主要组成部分。 2.…

Git分支学习

Commit 每次 Commit ,都会多一个节点,C1是C2的父节点,在C1的基础上产生。 使用 git commit 提交代码分支。 Branch 根据逻辑分解工作到不同的分支,在将分支和提交记录结合起来后,我们会看到两者如何协作。 在 mai…

【YOLO系列】 YOLOv4思想详解

前言 以下内容仅为个人在学习人工智能中所记录的笔记,先将目标识别算法yolo系列的整理出来分享给大家,供大家学习参考。 本文未对论文逐句逐段翻译,而是阅读全文后,总结出的YOLO V4论文的思路与实现路径。 若文中内容有误&#xf…