剑指Offer—23—二叉搜索树的后序遍历序列

来源:互联网 发布:卖汉服的淘宝店 编辑:程序博客网 时间:2024/06/14 02:25

二叉搜索树的后序遍历序列 : 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出 Yes , 否则输出 No 。假设输入的数组的任意两个数字都互不相同。

  • 思路:
    • 先找到根节点,根节点值一定大于左子树的值,然后比较根节点与右子树的值是否满足,然后递归比较左子树、右子树
package A23二叉搜索树的后序遍历序列;public class Solution {    public boolean VerifySquenceOfBST(int[] sequence) {        // 先找到当前根节点的左右子树的索引        if (sequence.length == 0 || sequence == null) {            return false;        }        return isTrue(sequence, 0, sequence.length-1);    }    public boolean isTrue(int[] sequence, int start, int end){        if (start > end) {            return true;        }        int i = start;        while(sequence[i]<sequence[end]){            i++;        }        for(int j=i;j<end;j++){            if (sequence[j] < sequence[end]) {                return false;            }        }        return isTrue(sequence, start, i-1) && isTrue(sequence, i, end-1);    }}
阅读全文
0 0
原创粉丝点击