题目要求:从最里层开始,依次往外拔掉每一层的洋葱
假设带头结点(最外层看做头结点L)
void Reverse(Linklist L){
第一步,判断L后边还有没有,有的话才能往下剥,没有的话程序end
即如果除了头结点还有别的结点,就可以在if(L->next!=null)条件下执行{
往里剥,直到最里层,Reverse (L->next) (开始递归!后边第二步没办法执行了!只要还有就一直剥已经被剥好的层的看作已经入栈)}
第二步,拔掉一层洋葱print (L->data)
因为剥在拔掉之前执行,所以这个顺序决定了只要没剥到最后一层,就不能开始拔!一旦开始拔,那拔掉的肯定是最里层!
(从栈顶开始,依次输出)
}
void Reverse(Linklist L){
if(L->next!=null){
Reverse (L->next);
}
print (L->data);
}
欢迎指正