10.将一个带头结点的单链表A分解为两个带头节点的单链表A和B,
使得A表中含有原表中序号为奇数的元素,而B表中含有原表中序号为偶数的元素,
且保持其相对顺序不变。
/*
将一个带头节点单链表A分解成两个带头结点的单链表A和B,
使得A中含有原表中序号为奇数的元素,B中为偶数,且保持其相对位置不变
分析:
首先我们需要分配一个节点空间为B作为头节点,
然后设置一个flag,
flag为0时认为是奇数,链给A;
flag为1时认为是偶数,链给B;
*/
#include<stdio.h>
#include<stdlib.h>
#include"linkStruct.h"//通过自创建头文件引入结构体,ctrl+鼠标左键点击即可查看
void divide(Link *lb,Link *la){
int flag=0;//做奇偶判定,因为奇数后一定是偶数,偶数之后一定是奇数
Link *l=la,*p=la->next,*rb=lb,*ra=l;
l->next=NULL;//原链表头节点置空
while(p){//要使其顺序不变,采用尾插法
if(!flag){
ra->next=p;