1. 程式人生 > >單鏈表分離值域為奇偶的兩個連結串列

單鏈表分離值域為奇偶的兩個連結串列

將一個帶頭結點的非空單鏈表分為值域為奇偶的兩個連結串列,且保持原來的順序,原理很簡單,直接上程式碼:

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; }

這裡寫圖片描述