單鏈表分離值域為奇偶的兩個連結串列
阿新 • • 發佈:2019-02-18
將一個帶頭結點的非空單鏈表分為值域為奇偶的兩個連結串列,且保持原來的順序,原理很簡單,直接上程式碼:
void split_list(Lnode *A, Lnode* &B, Lnode* &C)
{
B = new Lnode(-1);
C = new Lnode(-1);
B->next= NULL;
C->next = NULL;
Lnode *p=B, *q=C;
Lnode *a=A->next,*b; //b跟上文一樣,是一個用來儲存下一個開始節點的臨時節點
while (a != NULL )
{
b = a->next;
if ((a->val) % 2 != 0)
{
p->next = a;
a->next = NULL;
p = p->next;
a = b;
}
else
{
q->next = a;
a->next = NULL;
q = q->next;
a = b;
}
}
p->next = NULL;
q->next = NULL;
}