`

Odd Even Linked List

阅读更多
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.

You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity.

Example:
Given 1->2->3->4->5->NULL,
return 1->3->5->2->4->NULL.

Note:
The relative order inside both the even and odd groups should remain as it was in the input.
The first node is considered odd, the second node even and so on ...

给定一个链表,将奇数的节点放在前面,将偶数的节点放在后面。代码如下:
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode oddEvenList(ListNode head) {
        if(head == null || head.next == null) return head;
        ListNode oddNode = head;
        ListNode evenNode = head.next;
        ListNode helper = evenNode;
        while(evenNode != null && evenNode.next != null) {
            oddNode.next = evenNode.next;
            evenNode.next = evenNode.next.next;
            evenNode = evenNode.next;
            oddNode = oddNode.next;
        }
        oddNode.next = helper;
        return head;
    }
}
分享到:
评论

相关推荐

    LeetCode最全代码

    * [Linked List](https://github.com/kamyu104/LeetCode#linked-list) * [Stack](https://github.com/kamyu104/LeetCode#stack) * [Queue](https://github.com/kamyu104/LeetCode#queue) * [Heap]...

    odd_even_sort.zip_even odd mpi_even odd sort mpi_odd_even_sort_s

    奇偶排序(Even-Odd Sort或Odd-Even Sort)是一种基于冒泡排序的并行算法,它通过交替在数组的奇数位置和偶数位置进行比较和交换来提高排序效率。在多处理器环境中,这种算法可以被有效地分布式执行,利用MPI...

    java-leetcode题解之Odd Even Jump.java

    java郑 java_leetcode题解之Odd Even Jump.java

    前端大厂最新面试题-linked-list.docx

    10. 链表的奇偶链表(Odd-Even Linked List) 链表的奇偶链表是将链表中的节点分隔成奇数节点和偶数节点。这种结构可以用于解决一些特殊的问题,例如,将链表分隔成奇偶链表以满足某些算法的要求。 知识点:链表的...

    oddeven.zip_奇偶校验

    在`oddeven.c`文件中,我们可以预期看到一个函数,如`calculateParity`,该函数接受一个整数(假设是二进制数据)并返回一个表示奇偶校验的比特。程序可能会使用循环结构来遍历整数的每一位,并使用位操作来检查1的...

    oddeven-kata

    《使用Java进行TDD实践:Oddeven-Kata详解》 在编程领域,测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,它强调先编写测试用例,然后编写满足这些测试的最小功能代码。在这个过程中,"Odd...

    letter Odd&Even.py

    letter Odd&Even.py

    Python库 | EvenOrOdd-0.1.5-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:EvenOrOdd-0.1.5-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Even_odd_parity.rar_EVEN ODD PARITY_digital design

    在数字设计领域,奇偶校验(Even/Odd Parity)是一种简单而常见的错误检测机制,主要用于确保数据在传输或存储过程中的完整性。这个概念在计算机硬件、通信系统以及存储设备中都有广泛应用。"Even_odd_parity.rar" ...

    EvenOr Odd_java_evenorodd_

    在编程领域,尤其是在Java语言中,"EvenOr Odd_java_evenorodd_"这个标题可能指的是一个程序或项目,其目标是判断一个整数是偶数还是奇数。在描述中提到的"add two numbers in java"则暗示了这个项目可能不仅包含...

    oddEven.js:问题已解决

    奇数 解决的问题:知道数组中的每个数字是奇数还是偶数。

    odd_or_even.rar_C语言_Even_arrangeb5x_odd

    标题中的"odd_or_even.rar_C语言_Even_arrangeb5x_odd"暗示了这是一个与C语言编程相关的项目,目标是实现一个奇数偶数识别器。"Even_arrangeb5x_odd"可能是指程序的一个特定功能或者代码组织方式,但没有具体的信息...

    odd_even_check.zip_奇偶产生/校验电路

    用于检查数据的正确性。具体而言,在发送端,通过增加校验位,使有效数据位和校验位组成数据校验码;在接收端,根据接收的数据校验码判断数据的正确性。

    odd_even.zip_MPI_单核电脑mpi_多核

    标题中的"odd_even.zip_MPI_单核电脑mpi_多核"指的是一个使用MPI(Message Passing Interface)编程模型的C语言程序,用于在单核和多核计算机上执行奇偶分类任务。这个压缩包包含了两个C语言源代码文件,分别是"mpi_...

    mpi_odd_even.rar_sort_奇偶转换排序

    本项目名为"mpi_odd_even.rar_sort_奇偶转换排序",显然是利用MPI来实现奇偶转换排序的并行化版本。奇偶转换排序是一种基于交换的排序算法,它通过不断地将相邻的奇数与偶数元素进行交换,直至整个序列有序。 奇偶...

    odd.rar_odd

    在图像处理领域,"奇场矩阵"(Odd Field Matrix)是一种重要的概念,它通常与图像的边缘检测、特征提取和图像分析等相关。标题中的"odd.rar_odd"可能是指包含两个关键函数的压缩文件,分别是"SHIFT.m"和"odd.m"。这...

    Odd_Even_Thread

    "Odd_Even_Thread"是一个与Java编程相关的主题,通常指的是在多线程环境中的一种特定同步策略。这个概念常用于解决线程间的协作问题,尤其是在处理数组或其他序列数据结构时。在Java中,实现这种策略通常会用到`...

    Even-Odd-Number-Example.rar_number

    标题中的"Even-Odd-Number-Example"暗示了一个与偶数和奇数相关的编程示例。这个示例可能涉及到在编程中如何识别、操作和处理这两种类型的数字。描述中的"Even Odd Number Example"进一步确认了这一点,说明我们将...

    js-odd-even-mergesort:用于JavaScript的Batcher奇偶合并排序算法

    import { whole } from '@aureooms/js-odd-even-mergesort' ; import { list } from '@aureooms/js-itertools' ; import { increasing } from '@aureooms/js-compare' ; import { swap } from '@aureooms/js-array'...

Global site tag (gtag.js) - Google Analytics