博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NC133链表的奇偶重排
阅读量:3907 次
发布时间:2019-05-23

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

描述

给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。
注意是节点的编号而非节点的数值。
示例1
输入:
{1,2,3,4,5,6}
返回值:
{1,3,5,2,4,6}
说明:
1->2->3->4->5->6->NULL
重排后为
1->3->5->2->4->6->NULL
示例2
输入:
{1,4,6,3,7}
返回值:
{1,6,7,4,3}
说明:
1->4->6->3->7->NULL
重排后为
1->6->7->4->3->NULL
奇数节点有1,6,7,偶数节点有4,3。重排后为1,6,7,4,3
备注:
链表长度不大于200000。每个数范围均在int内。

初试牛客 的在线编程

思路
通过2个指针来维护奇偶两个链表,一个指针用于最后拼接奇偶链表。

代码

import java.util.*;/* * public class ListNode {    //节点类 *   int val; *   ListNode next = null; *   public ListNode(int val) {    //有参构造 *     this.val = val; *   } * } */class Solution {
public ListNode oddEvenList(ListNode head) {
//边界条件, 头结点为空,或者头结点的下一个节点为空。 if (head == null || head.next == null) {
return head; }//偶数 ListNode evenHead = head.next; ListNode odd = head, even = evenHead; while (even != null && even.next != null) {
odd.next = even.next; odd = odd.next; even.next = odd.next; even = even.next; } odd.next = evenHead; return head; }}import java.util.*;/* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */class Solution {
public ListNode oddEvenList(ListNode head) {
if (head == null || head.next == null) {
return head; }//偶数链表表头从head的下一个开始 ListNode evenHead = head.next;//奇数链表表头从head开始 ListNode odd = head, even = evenHead;//当偶数链表不为空且偶数链表的下一个数不为空时进入循环 while (even != null && even.next != null) {
odd.next = even.next; odd = odd.next; even.next = odd.next; even = even.next; }//将维护好的偶数链表表头赋值给奇数链表的最后一个节点值的下一个。 odd.next = evenHead; return head; }}

转载地址:http://ehqen.baihongyu.com/

你可能感兴趣的文章
Lowest Common Ancestor
查看>>
EM Intro
查看>>
Online Learning
查看>>
Delete Last Element
查看>>
Python list reverse
查看>>
Level Order Tree Traversal
查看>>
REST and SOAP
查看>>
Web Browse Process
查看>>
Hash
查看>>
Hash in Python
查看>>
取模运算和求余运算的区别
查看>>
Modulo and Reminder
查看>>
Round robin
查看>>
consistent hashing
查看>>
Crawler
查看>>
Bloom Filter
查看>>
Dynamic Programming
查看>>
Python hashmap
查看>>
python 切片
查看>>
interview sum
查看>>