剑指offer
catherine_sfy
这个作者很懒,什么都没留下…
展开
-
从尾到头打印链表——JavaScript实现
题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。思路一:利用栈先入后出的特性完成思路二:存下来然后进行数组翻转思路三:利用递归思路一实现代码:```/*function ListNode(x){ this.val = x; this.next = null;}*/function printListFromTailToHead(head){...原创 2019-04-05 17:07:44 · 294 阅读 · 0 评论 -
重建二叉树
重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:前序遍历数组的第一个结点就是二叉树的根结点p在中序遍历中找到二叉树的根结点所在的位置index,在根结点左右的子数组分别是二叉树...转载 2019-04-06 20:52:52 · 103 阅读 · 0 评论 -
用两个栈实现队列
用两个栈实现队列-JS实现题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:用两个栈实现,一个栈实现push的操作,另一个栈实现pop的操作;有元素执行push,则直接push进inStack;当执行pop操作时,需要判断outStack是否为空时;outStack为空时,检查inStack是否为空,若inStack不为空,则可将inS...原创 2019-04-07 11:28:01 · 103 阅读 · 0 评论 -
(8)旋转数组的最小数字
旋转数组的最小数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。这种方法最容易想到,但是时间复杂度显然不是最好的,所以只到这种程度是没有办法过关的。最容易...原创 2019-04-15 10:15:04 · 131 阅读 · 0 评论