演算法思路:遞迴判斷根節點大於左側子樹的最右側節點(即子樹最大值),根節點小於右側子樹的最左側節點(即最小值)
其中尋找子樹的最左最右節點分別寫了乙個遞迴函式
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 如果對二叉搜尋樹不夠了解,可能...