欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

程序员代码面试指南读书笔记1

程序员文章站 2024-02-27 16:12:03
...

如何仅仅使用递归函数和栈操作逆序一个栈?

见书第8页
将递归使用的如火纯情,出神入化。
问题描述:比如将栈12345,翻转后为54321;

思路:第一步,想办法得到栈低元素
第二步,通过递归,翻转一下。这就需要深刻理解递归思想

上代码----

package sharp1;

import java.util.Stack;

public class ReverseStack {
	public static int getAndRemoveLastOne(Stack<Integer> stack){
		int re = stack.pop();
		if(stack.isEmpty()){
			return re;
		}
		int last = getAndRemoveLastOne(stack);
		stack.push(last);
		return last;
		
	}
	public static void reverse(Stack<Integer> stack){
		if(stack.isEmpty())
			return;
		int last = getAndRemoveLastOne(stack);
		reverse(stack);
		stack.push(last);
				
	}
}

相关标签: 读书笔记