public String reverse(String str){ if(str == null || str.length() <= 1){ return str; } re ...
昨天去阿里巴巴参加Java研发工程师的实习生面试,遇到的一个题目: 我们要反转一个栈,如果使用另外一个栈作为辅助的话,那么反转起来很简单,一个接一个push到辅助栈里再push回来就行了。那么假如不能使用辅助栈,数组等空间为O n 的数据结构,只使用O 的空间复杂度即只能有常数个变量,怎么实现将栈反转 即原来的栈顶在栈底,栈底变成栈顶。 面试官提示我使用递归来考虑。当时我没有想出来 这道题使得我对 ...
2014-04-15 13:34 7 3160 推荐指数:
public String reverse(String str){ if(str == null || str.length() <= 1){ return str; } re ...
目录 1 链表、栈、队列、递归、哈希 1.1 链表 1.1.1 单向链表 1.1.2 双向链表 1.1.3 单双链表简单练习 1.2 栈、队列 1.3 栈、队列常见 ...
今天说的是栈与递归的关系,函数的递归调用和普通函数调用是一样的。当程序执行到某个函数时,将这个函数进行入栈操作,在入栈之前,通常需要完成三件事。 1、将所有的实参、返回地址等信息传递给被调函数保存。 2、为被调函数的局部变量分配存储区。 3、将控制转移到北调函数入口 ...
定义链表结构 非递归反转单链表 递归反转单链表 测试 View Code ...
...
运行结果: 链表:1->2->3->4->5反转之后的链表为:5->4->3->2->1 ...
1,首先总结一下线性表(分为顺序表和链接表,【即顺序存储结构和链式存储结构的区别】)和栈(顺序栈和链接栈)还有队列(顺序队列和链接队列)的JAVA类库中的实现: java.util.ArrayList 实现了顺序表,java.util.LinkedList 实现了链接表的功能 ...
之前参加过华北计算机研究所和优酷土豆的笔试,都考到出栈顺序,之前数据结构学的不到位,遇到这类题时,还着实把我愣了一会,现在总结下,省得以后再遇到这类问题,也希望能给遇到同样问题的兄弟们一个参考。 废话不多说,直接上个例题。 栈之根本 ...