98.leetcode-判断是否有效的二叉排序树
来源:互联网 发布:手机版迅雷网络异常 编辑:程序博客网 时间:2024/05/21 07:00
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.
- 方法一:利用二叉树中序遍历的思想,二叉排序树的中序遍历是递增的。
中序遍历非递归方法:
bool isValidBST(TreeNode* root) { stack<TreeNode*>s; TreeNode* pre=NULL; TreeNode* p=root; while(p || !s.empty()) { while(p) { s.push(p); p=p->left; } TreeNode* cur=s.top(); s.pop(); if(pre != nullptr) if(pre->val >= cur->val) return false; pre=cur; p=cur->right; } return true; }
递归方法:
class Solution {public: bool isValidBST(TreeNode* root) { TreeNode* prev = NULL; return validate(root, prev); } bool validate(TreeNode* node, TreeNode* &prev) { if (node == NULL) return true; if (!validate(node->left, prev)) return false; if (prev != NULL && prev->val >= node->val) return false; prev = node; return validate(node->right, prev); }};
2.方法二:也可以用前序遍历的思想
bool isValidBST(TreeNode* root) { return isValidBST(root, NULL, NULL);}bool isValidBST(TreeNode* root, TreeNode* minNode, TreeNode* maxNode) { if(!root) return true; if(minNode && root->val <= minNode->val || maxNode && root->val >= maxNode->val) return false; return isValidBST(root->left, minNode, root) && isValidBST(root->right, root, maxNode);}
0 0
- 98.leetcode-判断是否有效的二叉排序树
- 判断二叉排序树是否相同
- 判断字符串是否是有效的手机号码
- 判断是否是有效的IP地址
- 判断是否是有效的url
- 判断是否为有效电话号码的方法
- 判断网络是否有效的一些方法
- 判断是否为有效的手机号码
- 判断是否是有效的cron表达式
- Valid Parentheses 判断括号组合是否有效@LeetCode
- 判断一棵树是否为二叉排序树
- 判断时间段是否有效
- 判断句柄是否有效
- 判断金额是否有效
- 判断session是否有效
- 判断socket是否有效
- 判断指针是否有效
- 判断一棵树是否为二叉排序树的两种方法
- 等待一个内存块
- POS主密钥与工作密钥关联详解
- ZOJ 3469 Food Delivery(* 区间DP 总结)
- Java Date and Time系列
- 滞销品
- 98.leetcode-判断是否有效的二叉排序树
- Android探索之旅(第十四篇)Android中实现炫酷效果的Demo(持续收录中......)
- WebForm使用ajax
- MyISAM与InnoDB区别
- Cmake中的find_package功能
- Redis 配置
- npm 常用指令
- 使用WebView监控网页加载状况,PerformanceMonitor,WebViewClient生命周期
- php配置文件修改注意事项