根据数x调整链表

来源:互联网 发布:网络强国与青年运动 编辑:程序博客网 时间:2024/06/11 17:06

根据数x调整链表,使得小于x的放在前面,大于X的数放在X前面。


我们可以用两个指针 一个指向前面小于x的,一个指向后面大于x的。插入时用的是头插法。

最后再合成一个链表。


Node *  adjustListByOneNum(Node *h1,int x)
{
    
    Node *fstart=NULL;
    Node *lstart=NULL;
    Node *p=h1;
    Node *q;
    Node *head;
    while(p)
    {
        q=p->next;
        if(p->data<x)
        {
            p->next=fstart;
            fstart=p;
        }
        else
        {
            p->next=lstart;
            lstart=p;
        }
        p=q;
    }
    head=fstart;
    while(fstart->next)
    {
        fstart=fstart->next;
    }
    fstart->next=lstart;
    return head;
}








0 0
原创粉丝点击