Validate Binary Search Tree
来源:互联网 发布:java 空格 显示问号 编辑:程序博客网 时间:2024/06/06 02:58
题目大意: 判断一个二叉树是否是个排序二叉树,即根节点大于左节点,小于右节点,同时它的左右子树也满足这个要求
解题思路:中序遍历,如果当前节点小于等于左子树的最大节点,则不符合要求,若当前节点大于等于右子树的最小节点,则不符合要求
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool isValidBST(TreeNode *root) { int minVal = INT_MAX, maxVal = INT_MIN; return isValidBSTAssist(root, minVal, maxVal); }private: bool isValidBSTAssist(TreeNode *root, int &minVal, int &maxVal) { if(root == NULL) { return true; } int left_min, left_max; if(!isValidBSTAssist(root->left, left_min, left_max)) { return false; } if(root->left != NULL) { if(root->val <= left_max) { return false; } } else { left_min = left_max = root->val; } int right_min, right_max; if(!isValidBSTAssist(root->right, right_min, right_max)) { return false; } if(root->right != NULL) { if(root->val >= right_min) { return false; } } else { right_min = right_max = root->val; } minVal = min(root->val, min(left_min, right_min)); maxVal = max(root->val, max(left_max, right_max)); return true; }};
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
- 第五周 阅读程序 4 const 的用法
- ASP.NET js控制TextBox只能输入数字和小数点
- 怎样写好求职简历?
- 第四周项目4:指向学生类的指针
- 记一次tcmalloc分配内存引起的coredump
- Validate Binary Search Tree
- Spring MVC framework[1] Configuration
- 给百度自行车提的意见
- 1.Android快速入门
- svn+apache
- 解决"vs2002/vs2003无法启动调试"问题
- thead,tbody,tfoot标签的用法
- 【Android开发】Android中LayoutInflater的使用
- C compile error:fatal error C1083: 无法打开包括文件.h