如何用递归实现逆置链表(反转链表)
Node* fn(head)
{
if(head->next==NULL)
return head;//一直走到最后一位
newhead=fn(head->next);
head->next->next=head;//将最后两个进行交换//5->next->next=head;
head->next=NULL;
return newhead;
}
总是将最后两个进行交换,6和5交换之后,6指向5,4也指向5,5的next是NULL。
可以理解为把链表每两个节点之间都变成双向,再断开变成单向。
大家如果有问题可以下方评论区留言,我们一起讨论