您的位置:首页 > 编程语言

编程实现单链表的逆置

2014-10-11 15:09 267 查看
void reverse(Node **head){
if (head==NULL)
{
return;
}

Node *p=*head;
Node *q=NULL;
Node *pre=NULL;
while (p!=NULL)
{
pre=q;
q=p;
p=p->next;
//修改为指向前
q->next=pre;
}

*head=q;
}

递归方式反转链表

Node *reverse(Node *head){
//为空;只有一个结点
if (head==NULL||head->nxt==NULL)
{
return head;
}

//至少两个结点
Node *tail=reverse(head->nxt);
head->nxt->nxt=head;
head->nxt=NULL;
return tail;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: