【C++】【LeetCode】98. Validate Binary Search Tree
来源:互联网 发布:网络维护外包费用 编辑:程序博客网 时间:2024/06/05 20:49
题目
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:
Binary tree [2,1,3], return true.
Example 2:
Binary tree [1,2,3], return false.
思路
这道题我自己的思路非常低效,因此介绍一个网友的思路。
对于每个节点来说,都有一个它一定要大于的节点和一个它一定要小于的节点,满足这个条件,这个节点才能算是BST中符合条件的一个节点。因此利用递归,传递minNode和maxNode,判断该节点是否符合条件。对于左子树的子根节点,它一定要小于它的父节点,而大于对于父节点来说的minNode(如果minNode存在)。对于右子数的子根节点,它一定要大于他的父节点,而小于对于父节点来说的maxNode(如果maxNode存在)。
代码
/** * 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) { return isValidBST(root, NULL, NULL); } bool isValidBST(TreeNode* root, TreeNode* min, TreeNode* max) { if (root == NULL) { return true; } if (min != NULL && root->val <= min->val || max!= NULL && root->val >= max->val) { return false; } return isValidBST(root->left, min, root) && isValidBST(root->right, root, max); }};
阅读全文
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
- Java设计模式-策略设计模式
- [CODEVS P2594]解药还是毒药
- 清空数组的写法
- 单源无权最短路径 C实现~
- php下zmq扩展安装-2
- 【C++】【LeetCode】98. Validate Binary Search Tree
- 项目进度汇报5
- Java中"equals()"与"=="区别
- oracle数据库之初步(4)DML
- 主流JS框架技术站点收集
- git学习笔记整理-5-撤销提交
- String StringBuilder StringBuffer
- Simple Monitor Dubbo监控中心部署与使用
- 游戏服务器的登陆框架