leetcode 驗證二叉搜尋樹

2021-08-26 20:42:09 字數 845 閱讀 3427

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。

假設乙個二叉搜尋樹具有如下特徵:

示例 1:

輸入:2

/ \1 3輸出:true

示例 2:

輸入:5

/ \1 4

/ \3 6輸出:false解釋:輸入為: [5,1,4,null,null,3,6]。

根節點的值為 5 ,但是其右子節點值為 4 。

需要注意的是,「左/右子樹」是指左/右分支下所有的子節點,而不是只有最近的兩個。我開始就理解錯了。

提供乙個很簡單的思路,從根節點開始,驗證左子樹是不是滿足「只包含小於當前節點的數」,驗證右子樹是不是滿足「只包含大於當前節點的數」,然後遞迴驗證每乙個節點。

驗證左/右子樹是不是滿足條件,只要遍歷一遍即可,也是使用了遞迴。

class solution 	 

bool isbigger(int x, treenode *node)

bool isvalidbst(treenode* root)

};

也順便貼上開始理解錯誤的**。本來寫完還覺得自己很帥,其實不存在的。

//錯誤的解法

class solution

};

LeetCode 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true 示例 2 輸入 5 1 4 3 6 輸出 false 解釋 ...

驗證二叉搜尋樹(leetcode)

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。1.遞迴 2020.5.5 9 09 definition for a binary tree node...

Leetcode 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true 示例 2 輸入 5 1 4 3 6 輸出 false 解釋 ...