Easy-题目16:328. Odd Even Linked List
2016-05-30 19:59
218 查看
题目原文:
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.
题目大意:
给出一个单链表,把奇数节点放在偶数节点的前面。
题目分析:
新开两个头结点oddHead和evenHead,然后扫链表,交替的接在两个新头结点的后面,最后把odd链表的尾节点接到even链表的头结点上。
源码:(language:java)
成绩:
1ms,beats 5.71%,众数1ms,92.88%
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.
题目大意:
给出一个单链表,把奇数节点放在偶数节点的前面。
题目分析:
新开两个头结点oddHead和evenHead,然后扫链表,交替的接在两个新头结点的后面,最后把odd链表的尾节点接到even链表的头结点上。
源码:(language:java)
public class Solution { public ListNode oddEvenList(ListNode head) { if(head == null) return head; ListNode oddHead = head,evenHead =head.next; ListNode prevOdd = oddHead,prevEven = evenHead; while(prevOdd.next != null && prevEven.next != null){ prevOdd.next = prevEven.next; prevOdd = prevOdd.next; prevEven.next = prevOdd.next; prevEven = prevEven.next; } prevOdd.next = evenHead; return oddHead; } }
成绩:
1ms,beats 5.71%,众数1ms,92.88%
相关文章推荐
- Android开发 EditTextPreference 和 ListPreference的summary值动态修改
- <SeekBar>拖动条的 简单功能与用法
- JavaScript实现数据结构中的队列和堆栈
- 在 LINQ to Entities 查询中无法构造实体或复杂类型
- 在CSDN开通博客专栏后如何发布文章(图文)
- mysql设置合适的索引长度
- 在CSDN开通博客专栏后如何发布文章(图文)
- MySQL与Oracle的区别 之 事务的commit与rollback
- 面试题47:不用加减乘除做加法
- 摄像机标定
- Easy-题目15:191. Number of 1 Bits
- C#之tcp自动更新程序
- Android 深入理解Loader机制 让APP轻装上阵
- Android 深入理解Loader机制 让APP轻装上阵
- 团队作业7——团队分数分配
- 自定义类比较大小以及按照规则排序。
- 第十二周项目三:Time类中的运算符重载
- Easy-题目14:235.Lowest Common Ancestor of a Binary Search Tree
- 结构体和枚举
- 安装redis和php的redis扩展