这个问题见的多了,一般用递归实现呗
非常的简单
递归的伪代码大致为:
1,写出递归结束条件
2,开始递归调用
3,打印
比如说一个简单的打印代码就如下:
int ReversePrintList(Node *link){
if (link->next == NULL)
return 0;
ReversePrintList(link->next);
cout << link->next->number;
}
当然如果想要更复杂就需要把链表反过来指:
int reverseList(Node * head){
if(head->next == NULL)
return 0;
if(head->next->next == NULL)
return 1;
Node *p = head->next;
Node *p1 = p->next;
while(p->next != NULL){
p->next = p1->next;
p1->next = head->next;
head->next = p1;
p1 = p->next;
}
return 1;
}