自己试着写一下,对比差距,学习//删除链表A中节点,增加链表B中节点
//节点、链表定义
typedef struct node
{
int sn;
struct node *next;
}Node;
typedef struct list
{
int numbers;
Node *head;
}List;
//声明定义
List *lista,*listb;
Node *nodea,*nodeb,*pnode,*temp;
int i=0;
//初始化链表A、B
lista->head=pa;
listb->head=pb;
lista->numbers=Max;
listb->numbers=1;
//初始化链表A、B头节点及指针标记
nodea=pa;
nodeb=pb;
pnode=pa;
while(pnode!=NULL)
{
i++;
temp=pnode->next; //暂存下一个节点
if(i%2==1) //处理奇数项
{
nodea->next=pnode->next->next;
nodea=nodea->next;
}
else //处理偶数项
{
nodeb->next=pnode;
nodeb=nodeb->next;
lista->numbers--;
listb->numbers++;
}
pnode=temp; //取出下一个节点
}
nodea=nodeb=NULL;
|