编程实现单链表的逆置
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;
}
相关文章推荐