-
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两处的递归用来干什么?顺序可以点到吗?
第二个:如果做到只用一个堆栈就搞定反转的?