Validate Binary Search Tree
来源:互联网 发布:深圳古月网络 编辑:程序博客网 时间:2024/06/05 14:27
方案一:本方法,先遍历左子树,然后又子树。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private: bool isvalid(TreeNode *node,long long lnum,long long rnum) { if(node==NULL) return true; if(node->left!=NULL) { if((node->left->val<node->val)&&(node->val>lnum) &&(node->val<rnum)&&isvalid(node->left,lnum,node->val)) { if(node->right!=NULL) { return (node->right->val>node->val)&&(node->val>lnum) &&(node->val<rnum)&&isvalid(node->right,node->val,rnum); } if ((node->right==NULL)&&((node->val<=lnum)||(node->val>=rnum))) return false; else return true; } else return false; } if((node->left==NULL)&&((node->val<=lnum)||(node->val>=rnum))) return false; if(node->right!=NULL) { return (node->right->val>node->val)&&(node->val>lnum) &&(node->val<rnum)&&isvalid(node->right,node->val,rnum); } if ((node->right==NULL)&&((node->val<lnum)||(node->val>rnum))) return false; else return true; }public: bool isValidBST(TreeNode *root) { return isvalid(root,LONG_LONG_MIN,LONG_LONG_MAX); }};参考网上的答案:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private: bool isvalid(TreeNode *node,long long lnum,long long rnum) { if(node==NULL) return true; return (node->val>lnum)&&(node->val<rnum)&&isvalid(node->left,lnum,node->val)&& isvalid(node->right,node->val,rnum); }public: bool isValidBST(TreeNode *root) { return isvalid(root,LONG_LONG_MIN,LONG_LONG_MAX); }};
int型的最大值为INT_MAX(2147483647),为了将最大值包含在内,定义long long型的整数。
0 0
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Java开发各层对象含义 PO,VO,DAO,BO,POJO
- 数字图像处理--锐化空间滤波器
- 判断IP地址的合法性
- Linux tr命令简介
- 浅谈Android系统开发中LOG的使用
- Validate Binary Search Tree
- jdk和jre有什么区别
- 制作可独立分发的Android模拟器
- struct timeval结构体 以及 gettimeofday()函数
- 不断变化的mongoDB结果集
- OJ刷题之字符逆序
- centos7/rhel7重置root密码 (rd.break和init方法)
- P2P直连?经服务器中转?
- 图