一个栈一次压入 1 2 3 4 5 那么从栈顶到栈底分别为 5 4 3 2 1. 将这个栈转置后,从栈顶到栈底为 1 2 3 4 5 实现栈中元素的逆序
要求只能用 递归函数实现
代码:
package TT; import java.util.Stack; public class Test122 { public static int getAndRemoveLaseElement(Stack<Integer> stack){ int result = stack.pop(); if(stack.isEmpty()){ return result; }else { int last = getAndRemoveLaseElement(stack); stack.push(result); return last; } } public static void reverse( Stack<Integer> stack){ if(stack.isEmpty()){ return; } int i = getAndRemoveLaseElement(stack); reverse(stack); stack.push(i); } }
这个代码是这么理解:
最后一层递归 空的时候 return result=1 last此时就是1了 然后push进去的都是result~~~~