首页 > 学院 > 开发设计 > 正文

98. Validate Binary Search Tree

2019-11-10 21:48:14
字体:
来源:转载
供稿:网友

这题要多想,首相二叉平衡树的判断一定要从全局来看,分别大于小于某个数!!!,第二点,我被最大最小值卡了,所以就用了long long int然后改最大最小值,2刷刷好看一点的代码,思路要更加清晰

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool mark; void findit(TreeNode* root, long long int minn, long long int maxx){ if(root == NULL) return ; if(mark == false) return ; if(!(root -> val < maxx && root -> val > minn)){ mark = false; return ; } if(root -> left != NULL){ if(root -> left -> val >= root -> val){ mark = false; return ; } findit(root -> left, minn, root -> val); } if(root -> right != NULL){ if(root -> right -> val <= root -> val){ mark = false; return ; } findit(root -> right, root -> val, maxx); } return ; } bool isValidBST(TreeNode* root) { mark = true; if(root == NULL) return true; findit(root, -2147483649, 2147483648); return mark; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表