将带有头结点的链表分解为两个带有头结点的链表A,B,使其A含有原来链表的奇数位,B为偶数位,保持其相对顺序不变

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33883389/article/details/81369631
//将奇数结点放到A,偶数结点放在B
LinkList DisCreat_1(LinkList &A)
{
    int i= 0;
    LinkList B = (LinkList)malloc(sizeof(NODE));
    B->next = NULL;
    LinkList ra = A,rb = B,p;


    p = A->next; //p为工作结点
    A->next = NULL;//置空A
    while(p)
    {
        i++;
        if(i%2 == 0)
        {
            //为偶数结点放在B
            rb->next = p;
            rb = p;//pb指向尾部
        }else{
            ra->next = p;
            ra = p;
        }
    }//end while
    ra->next = NULL;
    rb->next = NULL;

    return B;
}

猜你喜欢

转载自blog.csdn.net/qq_33883389/article/details/81369631