win2008 iis配置網(wǎng)站服務(wù)營銷理論
根據(jù)二叉搜索樹的特性,我們使用中序遍歷,保證節(jié)點按從小到大的順序遍歷。既然要驗證,就是看在中序遍歷的條件下,各個節(jié)點的大小關(guān)系是否符合二叉搜索樹的特性。雙指針法和適合解決這個問題,一個指針指向當(dāng)前節(jié)點,另一個指針指向前一個節(jié)點(指的是按照中序遍歷順序的前一個節(jié)點),不斷后移兩個指針,兩兩進行比較。這只是大致思路,大家可以結(jié)合我的代碼以及注釋加以理解。
代碼及注釋如下:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* pre = NULL;//題目屬于要驗證二叉樹的特性,遞歸函數(shù)返回值用布爾類型3比較適合bool isValidBST(TreeNode* root) {if(root == NULL) return true;//遞歸左子樹bool judge1 = isValidBST(root -> left);if(pre == NULL){pre = root;//將pre從空節(jié)點移動到葉子結(jié)點}else{if(root -> val > pre -> val){pre = root;//后移pre}else{return false;}}//遞歸右子樹bool judge2 = isValidBST(root -> right);return judge1 && judge2;}
};