Validate Binary Search Tree问题及解法
来源:互联网 发布:ubuntu 连接打印机 编辑:程序博客网 时间:2024/06/02 06:52
问题描述:
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.
示例:
2 / \ 1 3Binary tree
[2,1,3]
, return true.1 / \ 2 3Binary tree
[1,2,3]
, return false.问题分析:
根据二叉搜索树而言,深度优先遍历后得到一个递增的数组。到时验证这个数组的合理性就能判断树是否为BST了。
过程详见代码:
/** * 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 isValidBST(TreeNode* root) {vector<int> res;bl(root, res);for (int i = 1; i < res.size(); i++){if (res[i - 1] >= res[i]) return false;}return true;}void bl(TreeNode* root,vector<int> &res){if (root == NULL) return;bl(root->left, res);res.push_back(root->val);bl(root->right, res);}};
阅读全文
0 0
- Validate Binary Search Tree问题及解法
- Binary Search Tree Iterator问题及解法
- Convert Sorted Array to Binary Search Tree问题及解法
- Find Mode in Binary Search Tree问题及解法
- Convert Sorted List to Binary Search Tree问题及解法
- Trim a 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
- UVA
- LinearRegression Formula deduction
- beego框架的环境搭建
- java Iterator 迭代器
- JavaScript学习笔记(决策语句)
- Validate Binary Search Tree问题及解法
- 网游变态功能
- 排队买饭
- poj2912Rochambeau 枚举+带权并查集
- 热升级
- 线段树+最大最小值查询+敌兵布阵
- API生命周期
- 笔试题 统计字符串单词数
- 剑指offer--连续子数组的最大和