二叉樹學(xué)習(xí)---校驗(yàn)是否是合法的二叉搜索樹

題目描述

leetcode地址
二叉搜索樹是指:左子樹的節(jié)點(diǎn)值嚴(yán)格小于根節(jié)點(diǎn),右子樹的節(jié)點(diǎn)值嚴(yán)格大于根節(jié)點(diǎn)。

源碼

現(xiàn)給出一個(gè)二叉樹,校驗(yàn)其是否滿足二叉搜索樹的特性。

比如下圖中,右節(jié)點(diǎn)4小于根節(jié)點(diǎn)5,不是二叉搜索樹。


截屏2021-03-01 上午11.27.15.png

思路分析

分解問題為一個(gè)一個(gè)的子問題,一顆大的二叉樹是搜索樹的前提是,其左右子樹也是二叉樹,只要在判斷子樹過(guò)程中發(fā)現(xiàn)有不滿足條件的,則整個(gè)二叉樹不滿足條件。


截屏2021-03-01 下午6.01.26.png

代碼實(shí)現(xiàn)

/**
 * @param {TreeNode} root
 * @return {boolean}
 */
var isValidBST = function(root) {
    if(root === null || (root.left === null && root.right === null)) return true
    return recursive(root, -Infinity, Infinity)
    function recursive(node, left, right) {
        if(node === null) return true;
        if(node.val <= left || node.val >= right) return false
        return recursive(node.left, left, node.val) && recursive(node.right, node.val, right)
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容