[LeetCode OJ]- Valid Binary Search Tree

題目要求:驗證一個樹是否為二叉搜索樹

二叉搜索樹:(BST,二叉排序樹,二叉查找樹)。

一顆二叉檢索樹或者為空樹,或者滿足:

左子樹的所有值都小于根節點的值,右子樹的所有值都大于根節點的值。并且左右子樹均為二叉搜索樹。下圖中,第一個樹是BST,第二個樹不是BST(原因:6<10)。


一顆BST


不是BST

因此,為了驗證一顆二叉樹是否為BST,只比較根節點和左右子節點的大小是不行的,還需要驗證整個左右子樹是否滿足要求。

那么,我們可以使用兩個值來限定子樹的取值范圍,上限max,下限min,每次遞歸時,都可以把當前節點的值賦給上限或者下限。

代碼如下。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容