题解 | #二叉搜索树的后序遍历序列#

二叉搜索树的后序遍历序列

https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param sequence int整型一维数组 
 * @return bool布尔型
 */
export function VerifySquenceOfBST(sequence: number[]): boolean {
    // write code here
    //找出根节点,然后区分左树和右树,当左子树出现大于根节点的就不合法,右子树出现小于 根节点的也不合法,一直这样分治下去来进行判断
    const size = sequence.length
    //空树不是搜索树
    if(size == 0){
        return false
    }
    //一个函数来进行判断左树中是否有一个值大于根节点
    return checkVaild(sequence,0,size-1)
}
const checkVaild = (array,start,end):boolean=>{
    //当子树只有一个节点
    if(start >= end)return true
    //找到根节点
    const root = array[end]
    //区分左右子树
    let j = end - 1
    while(j >=0 && array[j] > root)j--;
    //检查左子树是否存在大于根节点的
    for(let i = start;i <= j;i++){
        if(array[i] > root){
            return false
        }
    }
    //分治来检查左子树和右子树
    return checkVaild(array,start,j) && checkVaild(array,j +1,end-1)
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:18
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务