1.先递归使头指针指向最后一个节点。
2.将最后一个节点的地址返回给新的头指针 “newhead” 。
3.然后依次重队尾指针开始,对里面的指针域进行逆置。
4.每次逆置完需要将当前节点的指针域置NULL。
5.最后返回新的头结点地址。
代码:
LinkList InversionList(LinkList head) {
if (head->next == NULL) {
return head; //返回最后一个结点地址
}
LinkList newhead = InversionList(head->next); //移动到最后一个节点,将地址付给newhead
head->next->next = head; //进行逆置
head->next = NULL;
return newhead; //返回新的头结点地址
}