算法描述:
用指针p扫描A链表,发现data为偶数时取下并插入B链表中。要求保持原来的序列,则采用尾插法建立B链表。
void divide(LNode* A, LNode *&B) {
LNode* p, * q, * r;
B = (LNode*)malloc(sizeof(LNode));
B->next = NULL;
r = B;
p = A;
while (p->next) {
if (p->next->data % 2 == 0) {
q = p->next;//q指向要取下的节点
p->next = p->next->next;//取下节点
q->next = NULL;
r->next = q;//q插入B链表
r = q;//r为B链表的尾节点
}
else
p = p->next;//为奇数,继续检查下一节点
}
}