一、题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 二、思路 1、二叉搜索树又称二叉排序树(Binary Sort T…
分类:剑指offer
剑指offer二十二之从上往下打印二叉树
一、题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 二、思路 二叉树的层次遍历,可以借助队列实现。具体思路详见注释。 三、代码 import java.util.…
剑指offer二十一之栈的压入、弹出序列
一、题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出…
剑指offer二十之包含min函数的栈
一、题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 二、思路 用一个栈dataStack保存数据,用另外一个栈minStack保存依次入栈最小的数。每次元素存入minStack的时候,如…
剑指offer十九之顺时针打印矩阵
一、题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12…
剑指offer十八之二叉树的镜像
一、题目 操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义: 源二叉树 : 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树: 8 …
剑指offer十七姊妹篇之二叉树的创建、遍历、判断子二叉树
1、二叉树节点类 public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int…
剑指offer十七之树的子结构
一、题目 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 二、思路 1、首先设置标志位result = false,因为一旦匹配成功result就设为true,剩下的代…
剑指offer十六之合并两个排序的链表
一、题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 二、思路 注:链表1和链表2是两个递增排序的链表,合并这两个链表得到升序链表为链表3. 首先分析合并两个…
剑指offer十五之反转链表
一、题目 输入一个链表,反转链表后,输出链表的所有元素。 二、思路 详细分析见代码注释 三、代码 public class Solution { &n…
剑指offer十四之链表中倒数第k个结点
一、题目 输入一个链表,输出该链表中倒数第k个结点。 二、思路 两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然…
剑指offer十三之调整数组顺序使奇数位于偶数前面
一、题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 二、思路 &nbs…