单链表逆序(就地逆置和头插)

来源:互联网 发布:达科塔约翰逊知乎 编辑:程序博客网 时间:2024/06/05 01:10
void invert(node * head)//就地逆置{    node *tail,*middle;    middle=NULL;    while(head)    {        tail=middle;        middle=head;        head=head->next;        middle->next=tail;//方向改变    }    //middle作为新的头结点    while(middle)    {        printf("%d ",middle->data);        middle=middle->next;    }}

这里写图片描述

void head_invert(node * head)//带头节点头插{    node *p,*q;    p=head->next;    head->next=NULL;    while(p)    {        q=p;        p=p->next;        q->next=head->next;        head->next=q;//新的节点都放在头结点后面    }    while(head)    {        printf("%d ",head->data);        head=head->next;    }}

这里写图片描述
“`

原创粉丝点击