LeetCode 98驗證二叉搜尋樹 c

2021-09-24 06:41:41 字數 643 閱讀 9363

演算法思路:遞迴判斷根節點大於左側子樹的最右側節點(即子樹最大值),根節點小於右側子樹的最左側節點(即最小值)

其中尋找子樹的最左最右節點分別寫了乙個遞迴函式

int leftmax(treenode* root)

int rightmin(treenode* root)

bool isvalidbstcore(treenode* root)

if (root->right)

bool flag_root_left = true;

bool flag_root_right = true;

if (root->left)

flag_root_left = root->val > left_max ? true : false;

if (root->right)

flag_root_right = root->val < right_min ? true : false;

return flag_left && flag_right&&flag_root_left&&flag_root_right;

} bool isvalidbst(treenode* root)

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 如果對二叉搜尋樹不夠了解,可能...