面试题:递归反转一个栈

static void ReverseStack(ref Stack stack) { if (stack.Count == 0) return; object top = stack.Pop(); ReverseStack(ref stack); if (stack.Count == 0) { stack.Push(top); return; } object top2 = stack.Pop(); ReverseStack(ref stack);//p1 stack.Push(top); ReverseStack(ref stack);//p2 stack.Push(top2); }



请问两个问题: 
第一个: 注释p1,p2两处的递归用来干什么?顺序可以点到吗? 
第二个:如果做到只用一个堆栈就搞定反转的? 

未命名图片 lp 2

原文地址:https://www.cnblogs.com/wust221/p/5397111.html