算法系列之验证二叉搜索树
算法系列之驗(yàn)證二叉搜索樹(shù)
本題來(lái)自Leetcode ,題目傳送門(mén):「鏈接」
難度:中等
編程語(yǔ)言:Go
1. 題目介紹
給你一個(gè)二叉樹(shù)的根節(jié)點(diǎn) root ,判斷其是否是一個(gè)有效的二叉搜索樹(shù)。
有效二叉搜索樹(shù)定義如下 :
1. 節(jié)點(diǎn)的左子樹(shù)只包含 小于 當(dāng)前節(jié)點(diǎn)的數(shù) 。
2. 節(jié)點(diǎn)的右子樹(shù)只包含 大于 當(dāng)前節(jié)點(diǎn)的數(shù)。
3. 所有左子樹(shù)和右子樹(shù)自身必須也是二叉搜索樹(shù)。
示例 1 :

引用自Leetcode
輸入
:root = [2,1,3]輸出
:true示例 2:

引用自Leetcode
輸入:root = [5,1,4,null,null,3,6]輸出
:false解釋:根節(jié)點(diǎn)的值是 5
,但是右子節(jié)點(diǎn)的值是4提示:
1. 樹(shù)中節(jié)點(diǎn)數(shù)目范圍在[1, ] 內(nèi)
2. <= Node.val <=
2. 解題思路
要確保是正確的二叉搜索樹(shù),則需要保證左小右大。如果所有父節(jié)點(diǎn)均滿(mǎn)足此要求,則二叉搜索樹(shù)合法 。
由此可以看出這是一道典型的遞歸題