leetcode 98 驗證二叉搜尋樹

2021-08-19 08:47:59 字數 1073 閱讀 6369

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

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

示例 1:

輸入:

1   3

輸出:true

示例 2:

輸入:

1   4

3   6

輸出:false

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

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

關鍵資訊

1二叉搜尋樹的中序遍歷是遞增的,我們採用遞迴的到其中序變數結果

2不能採用全域性變數,則需考慮遞迴函式中資訊的傳遞

遞迴函式是乙個函式(廢話),函式則有 名,引數,返回值

所以需考慮利用引數或返回值完成本題

本人愚鈍,起先只考慮了利用引數i傳遞中序前驅,用於比較其中序前驅與當前節點的大小關係,引數i在作為中序前驅的同時肩負著判斷該樹是否為二叉搜尋樹的資訊(本文中將其稱為重要資訊)

利用返回值獲得中序前驅,

/**

*definition for a binary tree node.

*struct treenode

* };

*/class solution

return i;

}bool isvalidbst( treenode* root )

};

bool judge(struct treenode* root,long long *data)

if(root->val>*data)

*data=root->val;

else

return false;

if(root->right!=null)

return true;

}bool isvalidbst(struct treenode* root) 

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

leetcode98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 解法1 可以利用它本身的性...