【C++】 LeetCode 98. Validate Binary Search Tree
来源:互联网 发布:godaddy创建数据库 编辑:程序博客网 时间:2024/05/18 16:16
题目:
Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
- The left subtree of a node contains only nodes with keys less than the node's key.
- The right subtree of a node contains only nodes with keys greater than the node's key.
- Both the left and right subtrees must also be binary search trees.
Example 1:
2 / \ 1 3Binary tree
[2,1,3]
, return true.Example 2:
1 / \ 2 3Binary tree
[1,2,3]
, return false.解析:
二叉搜索树的中序遍历是递增序列,故考虑采用中序遍历的方式,判断是否为递增序列。由于int型为4字节,考虑可能溢出,故采用long long类型
代码:
/** * 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 forward(long long &res,TreeNode* root) { if(root->left!=NULL) { if(!forward(res,root->left)) return false; } if(res>=root->val)return false; res=(long long)root->val; if(root->right!=NULL) { if(!forward(res,root->right)) return false; } return true; } bool isValidBST(TreeNode* root) { if(root==NULL)return true; TreeNode* node=root; while(1) { if(node->left!=NULL) node=node->left; else break; } long long res=(long long)(node->val)-1; return forward(res,root); }};
运行结果:
0 0
- 【C++】 LeetCode 98. Validate Binary Search Tree
- 【C++】【LeetCode】98. Validate Binary Search Tree
- [leetcode-98]Validate Binary Search Tree(c++)
- LeetCode 98. Validate Binary Search Tree
- [LeetCode]98.Validate Binary Search Tree
- [Leetcode] 98. Validate Binary Search Tree
- LeetCode --- 98. Validate Binary Search Tree
- [leetcode] 98.Validate Binary Search Tree
- [leetcode] 98.Validate Binary Search Tree
- [Leetcode] 98. Validate Binary Search Tree @python
- Leetcode 98. Validate Binary Search Tree
- [LeetCode]98. Validate Binary Search Tree
- leetcode 98. Validate Binary Search Tree
- *LeetCode 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree LeetCode
- LeetCode 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- LeetCode *** 98. Validate Binary Search Tree
- (计算几何)判断一个点是否在线段上
- django搭建个人博客08,添加访问权限
- 【bzoj2002】【Hnoi2010】【Bounce 弹飞绵羊】【lct】
- 排序 选择问题 Partition函数
- Spring学习笔记一
- 【C++】 LeetCode 98. Validate Binary Search Tree
- 尺取法+POJ3320
- blender球体挖洞
- 基于WSN的智能节水灌溉系统设计方案
- 【项目记录】山东大学场馆管理系统之——需求分析、接口文档
- redis
- 018-Dockerfile指令(1)
- hdu----单词数
- HTML5 canvas之图片批量加载