LeetCode98 驗證二叉搜尋樹

2022-06-27 10:03:13 字數 1035 閱讀 9654

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

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

示例 1:

輸入:

2/ \

1 3

輸出: true

示例 2:

輸入:

5/ \

1 4

/ \3 6

輸出: false

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

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

/*

* * definition for a binary tree node.

* struct treenode

* }; */

/*演算法思想:

採用遞迴的方法,利用它本身的性質來做,即左《根《右,初始化時帶入系統最大值和最小值,在遞迴過程中換成它們自己的節點值,用long代替int就是為了包括int的邊界條件。

*///

演算法實現:

class

solution

bool isvalidbst(treenode *root, long mn, long

mx)

};/*

演算法思想:

採用迭代的方法,值得注意的是,對於二叉搜尋樹,我們可以通過中序遍歷得到乙個遞增的有序序列。因此,中序遍歷是二叉搜尋樹中最常用的遍歷方法。故而對樹進行非遞迴中序遍歷並判斷是否滿足左《根《右。

*///

演算法實現:

class

solution

treenode *t =s.top();

s.pop();

if (pre && t->val <= pre->val)

return

false

; pre =t;

p = t->right;

}return

true

; }

};

leetcode 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 1 3 輸出 true 示例 2 輸入 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 關鍵資訊 1二叉搜尋樹的中序遍歷是遞...

leetcode 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 解題思路 中序遍歷遞增,每次只...

leetcode 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 如果對二叉搜尋樹不夠了解,可能...