剑指 Offer 33. 二叉搜索树的后序遍历序列
剑指 Offer 33. 二叉搜索树的后序遍历序列
题目
1 | 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 |
思路
因为为后续遍历,所以一定满足,最后的节点一定是根节点,所以我们找到了根节点,然后因为这个树为二叉搜索树,所以根节点的左边的值一定小于根节点,右边的值一定大于根节点,所以我们在前面的数组中一定能找到left和right,如果这个数组不满足这个条件那么就一定不能构建成搜索树。
这样我们找到了left和right后依次类推,我们逐个判断left和right是不是二叉搜索树。
和剑指offer第七题类似,也是通过指针和前序中序后序遍历确定根节点
实现
1 | private static class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 吕小医's BLOG!