试写一种算法

2024-11-20 21:17:56
推荐回答(3个)
回答(1):

void invert (Node *&head) //head 为引用过来头结点。
{
Node *p, *q, *r; // p, q, r 为结点指针;
p=head;
q=p->next;
while ( q!=NULL)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
head->next=NULL;
head=p;//p此时指向链表的最后一个节点, 变成头结点。
}

回答(2):

倒插法,请百度之

回答(3):

for (int i = 1; i<=n>>1; i++)
swap(a[i],a[n-i+1]);