98. Validate Binary Search Tree
来源:互联网 发布:it部门管理软件 编辑:程序博客网 时间:2024/06/04 22:25
98. Validate Binary Search Tree
- Validate Binary Search Tree
- 题目描述
- 解题思路
题目描述
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 3
Binary tree [2,1,3], return true.
Example 2:
1
/ \
2 3
Binary tree [1,2,3], return false.
解题思路
给出树要我们求树是否是二分搜索树。即左边孩子比父节点小,右边孩子比父节点大。
我们可以用DFS来求,用一个栈进行中序遍历记录每个点,栈里的点记录的顺序分别是左孩子,父节点,右孩子,这样我们就可以用一个节点与前一个节点比较大小就可。
/** * 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) { if (root == NULL) return true; stack<TreeNode*> s; TreeNode* pre = NULL; while (root != NULL || !s.empty()) { while (root != NULL) { s.push(root); root = root->left; } root = s.top(); s.pop(); if(pre != NULL && root->val <= pre->val) return false; pre = root; root = root->right; } return true; }};
阅读全文
0 0
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree
- 未知宽高图片垂直居中的三种方法
- NOIP考点总结
- JDBC连接SQLServer数据库
- 外部引用css时,link和@import两种区别
- 小结 | 初识C++(一)
- 98. Validate Binary Search Tree
- trait 继承的Demo
- c++中为什么要用引用?
- MD5加密
- 数人云|万字解读:Service Mesh服务网格新生代--Istio
- Eclipse一些快捷键
- OpenCV编程->双目匹配计算棋盘格角点计算及两轴位移计算
- shutdown & reboot & last
- string类的基本操作