思路
建立A、B表頭,在hc單連結清單中周遊拆下結點用尾插法放入A,或用頭插法放入B中。
代碼
void divide(LinkList hc,LinkList &A,LinkList &B){
A=(LinkList)malloc(sizeof(LNode));
B=(LinkList)malloc(sizeof(LNode));
A->next=NULL;B->next=NULL;
int num=0;
LNode *ra=A,*rb,*p=hc->next;
while(p!=NULL){
num++;
if(num%2!=0){ //尾插
ra->next=p;ra=p;
}else{ //頭插
rb=p;p=p->next;
rb->next=B->next;
B->next=rb;
}
p=p->next;
}
ra->next=NULL;
}