
#include <iostream>
#include <vector>
using namespace std;
typedef struct LNode
{
int data;
struct LNode* next;
}LNode, * LinkList;
void chushi(LNode *pNode,int a);
void CreateList_R(LinkList& L, int n)
{
L = nullptr;
LNode *tail = nullptr;
int a;
for(int i = 0; i < n; ++ i)
{
cin >> a;
LNode *newNode = new LNode;
newNode -> data = a;
newNode -> next = nullptr;
if(L == nullptr) {
L = newNode;//第一个节点
}
else
{
tail -> next = newNode;//链接新节点
}
tail = newNode;
}
tail -> next = nullptr;
}
void Decollate(LinkList &L, LinkList &L1)
{//奇偶链表的分割
vector<int> a;
LNode *f = L;
while(f != nullptr)
{
a.push_back(f->data);
f = f->next;
}
int n = a.size();
L1 = nullptr;
f = nullptr;
for(int i = 0; i < n; ++ i)
{
if(!(i & 1))
{
LNode *nwnd = new LNode ;
chushi(nwnd,a[i]);
if(L1 == nullptr)//第一个节点
{
L1 = nwnd;
}
else
{
f -> next = nwnd;
}
f = nwnd;//始终指向最后一个节点
}
}
for(int i = 0; i < n; ++ i)
{
if((i & 1))
{
LNode *nwnd = new LNode ;
chushi(nwnd,a[i]);
if(L1 == nullptr)//第一个节点
{
L1 = nwnd;
}
else
{
f -> next = nwnd;
}
f = nwnd;//始终指向最后一个节点
}
}
f -> next = nullptr;
LNode *sb = new LNode;
sb -> next = L1;
L1 = sb;
}
void chushi(LNode *pNode, int a) {
pNode -> next = nullptr;
pNode -> data = a;
}