leetcode 98 【查询是否是平衡树】
2015-06-08 21:15
288 查看
讨厌自己晕晕乎乎的,这么简单的题也debug了好久,之前自己的思路都没有想好,这么简答的逻辑关系也理不清楚,活该做这么久。
这几天怨气怎么这么大。。。
对于每个节点,需要左子树的最大值,右子树的最小值,及两者是否都是***L。
但是应该记录子树上所有值的最大值,最小值。因为对于该节点的父节点,你不知道他是要最大值,还是最小值。
这几天怨气怎么这么大。。。
对于每个节点,需要左子树的最大值,右子树的最小值,及两者是否都是***L。
但是应该记录子树上所有值的最大值,最小值。因为对于该节点的父节点,你不知道他是要最大值,还是最小值。
/** * 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 help(TreeNode* root,int &l,int &r) { if(!root) return true; if(root->left) { int i,j; i=j=root->left->val; int ret=help(root->left,i,j); l=min(l,i); r=max(j,r); if(j>=root->val||!ret) return false; } if(root->right) { int i,j; i=j=root->right->val; int ret=help(root->right,i,j); l=min(l,i);r=max(r,j); if(i<=root->val||!ret) return false; } return true; } bool isValidBST(TreeNode* root) { if(!root) return true; int a,b; a=b=root->val; return help(root,a,b); } };
相关文章推荐
- 分数类的实现
- 2015年6月8日_宋词学习
- org.hibernate.LazyInitializationException:could not initialize proxy
- java ftp
- Android屏幕适配全攻略(最权威的官方适配指导)
- C++难点—类 (01)
- Uva - 1584 - Circular Sequence
- 大数据时代规划数据管理的分析与思考阅读笔记
- Uva - 1584 - Circular Sequence
- SVN在Android Studio中的配置
- Spring温习(1)--最基础的示例
- 杂记
- txt电子书免费下载全集全本完结 小说下载txt电子书免费下载全本
- chattr
- 第二阶段冲刺进程5
- android的线性布局
- 14.7 配置仲裁
- Java的内存泄露
- 第二段冲刺进程3
- java经典问题(2)