第40关:奇偶链表的分割

  • Post author:
  • Post category:其他


任务描述

本关任务:给定一个单链表,把所有的奇数结点和偶数结点分别排在一起,重新链成一个新链表。请注意,这里的奇数结点和偶数结点指的是结点编号的奇偶性,而不是结点的值的奇偶性。

要求:空间复杂度应为 O(1),时间复杂度应为 O(n),n 为链表结点总数。

编程要求

输入

多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。

输出

奇数结点和偶数结点分割后重新链成的新链表。

测试说明

平台会对你编写的代码进行测试:

代码

#include <iostream>
using namespace std;
typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode, * LinkList;
void CreateList_R(LinkList& L, int n)
{//后插法创建单链表
    L=new LNode;
    L->next=NULL;
    int i;
    LinkList p=L;
    for(i=1;i<=n;i++){
        LinkList s;
        s=new LNode;
        scanf("%d",&s->



版权声明:本文为m0_63759457原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。