二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。
假设输入的数组的任意两个数字都互不相同。
分析
由于是二叉搜索树, 而且是后序遍历, 所以一定有:
arr[end]就是当前子树的根节点
左子树arr[i] < arr[end]
右子树arr[i] > arr[end]
所以类似于快排, 对于二叉树的子树进行递归, 并拆分左右子树, 判断上面的规则;
代码
1 | public class Solution { |
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。
假设输入的数组的任意两个数字都互不相同。
由于是二叉搜索树, 而且是后序遍历, 所以一定有:
arr[end]就是当前子树的根节点
左子树arr[i] < arr[end]
右子树arr[i] > arr[end]
所以类似于快排, 对于二叉树的子树进行递归, 并拆分左右子树, 判断上面的规则;
1 | public class Solution { |
觉得本文不错就点个♥再走吧~