剑指Offer
白话讲解剑指offer
飞吧菜鸟了
很帮
展开
-
【剑指Offer学习】白话讲【面试题23:二叉搜索树的后序遍历序列】
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。/** * 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。 * @author a1 * */ public boolean VerifySquenceOfBST(int [] sequence) { return rec原创 2020-11-07 23:09:26 · 128 阅读 · 0 评论 -
【剑指Offer学习】白话讲【面试题22:从上往下打印二叉树】
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。思路:采用队列,从根节点开始,首先将根节点放入队列中,然后循环遍历队列,是否为空,不为空,就把当前队首元素弹出,然后再依次判断当前队首元素是否有左右孩子,则依次将其左右孩子压入队列中,循环上述步骤,直到队列为空为止。package exam;import java.util.ArrayList;import java.util.Li原创 2020-11-05 12:55:38 · 92 阅读 · 0 评论 -
【剑指Offer学习】白话讲【面试题20 :包含min函数的栈】
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。import java.util.ArrayList;import java.util.List;import java.util.Stack;public class Question20 { //第一个栈存储数据元素 private Stack<Integer> stack=new Stack<Integer>(); //第二个栈存储最小值原创 2020-11-04 19:07:23 · 79 阅读 · 0 评论 -
【剑指Offer学习】白话讲【面试题19 :顺时针打印矩阵】
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.新的解题思路如下import java.util.ArrayList;public class Solution { public ArrayList<Integer> printMatrix(in原创 2020-11-04 13:28:02 · 87 阅读 · 0 评论 -
【剑指Offer学习】白话讲【面试题16 :反转链表】
题目:输入一个链表,反转链表后,输出新链表的表头。解法一: 利用栈这种数据结构,先进后出的思想,循环遍历当前链表,将所有节点压入到栈中,那么最后遍历结束后,栈顶元素必为链表的尾结点。 再进行一次遍历,遍历当前的栈,直到栈不空为止,在遍历栈之前,要提前弹出当前栈顶元素,从第二个元素开始遍历栈,每弹出一个新的元素,就将上一个节点的next指向新弹出的节点,然后再将新弹出的元素保存在pointer指针中 最后关键一步,遍历完栈之后,一定要最后出栈的元素的next指针置位null...原创 2020-10-24 17:16:59 · 91 阅读 · 0 评论 -
【剑指Offer学习】白话讲【面试题15:链表中倒数第k个结点】
题目:输入一个链表,输出该链表中倒数第k 个结点.为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点.例如一个链表有6 个结点,从头结点开始它们的值依次是1 、2、3、4、5 、6。这个个链表的倒数第3 个结点是值为4 的结点.解题思路:我们如何遍历一次数组就可以将倒数第k个位置的节点找出那,这里很巧妙的运用了生活中的一个例子,两个人距离100m同时匀速运动,无论花费多长时间,他们俩最终相聚的距离还是100m。所以对于这个题,我们最关键的找到倒数第K个节点的位置距最后一.原创 2020-10-23 22:52:18 · 94 阅读 · 0 评论