博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
奇偶链表(奇数节点位于偶数节点之前) Odd Even Linked List
阅读量:5986 次
发布时间:2019-06-20

本文共 974 字,大约阅读时间需要 3 分钟。

hot3.png

问题:

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 ...

解决:

① 使用快慢指针直接操作。

class Solution { //1ms

    public ListNode oddEvenList(ListNode head) {
        if (head == null || head.next == null) return head;
        ListNode slow = head;
        ListNode fast = head;
        ListNode cur = head;
        while (fast.next != null && fast.next.next != null){
            slow = fast.next;
            fast = fast.next.next;
            slow.next = fast.next;
            fast.next = cur.next;
            cur.next = fast;
            fast = slow;
            cur = cur.next;
        }
        return head;
    }
}

转载于:https://my.oschina.net/liyurong/blog/1594404

你可能感兴趣的文章
杂七杂八的面试概念
查看>>
递归算法浅谈
查看>>
赵雅智_ListView_BaseAdapter
查看>>
NoSQL数据库:数据的一致性
查看>>
20款优秀的国外 Mobile App 界面设计案例
查看>>
github简单使用教程
查看>>
使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库(转)
查看>>
娓娓道来c指针 (0)c语言的梦魇:c指针
查看>>
samsungGalaxyS4USB驱动
查看>>
myqltransactionRollbackexception deadlock found when trying to get lock
查看>>
Linux 在线模拟器
查看>>
NavigationBar 背景颜色,字体颜色
查看>>
右键菜单 GenericMenu
查看>>
〖Linux〗Kubuntu14.04 平滑字体的设置
查看>>
Windows SVN局域网设置连接
查看>>
jquery.elevateZoom实现仿淘宝看图片,一张小的,一张大用于鼠标经过时候显示
查看>>
extern用法
查看>>
Android WebRTC 音视频开发总结(一)
查看>>
快速生成漂亮的移动端视差滚动效果
查看>>
快速幂取模算法
查看>>