博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode--Validate Binary Search Tree
阅读量:6238 次
发布时间:2019-06-22

本文共 1196 字,大约阅读时间需要 3 分钟。

1.题目描述

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.解法分析

对树进行先序遍历,如果先序遍历的过程中始终有前一个元素比后一个元素小,那么就是一棵有效的BST,反之则不是

/**
* Definition for binary tree
* struct TreeNode {
*     int val;
*     TreeNode *left;
*     TreeNode *right;
*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isValidBST(TreeNode *root) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(!root)return true;
vector
v;
 
int cur;
int prev;
bool firstRound=true;
TreeNode *curT=root;
 
while(curT||!v.empty())
{
while(curT)
{
v.push_back(curT);
curT=curT->left;
}
if(!v.empty())
{
curT=v.back();v.pop_back();
if(firstRound){cur=curT->val;prev=cur;firstRound=false;}
else
{
cur=curT->val;
if(cur<=prev)return false;
prev=cur;
}
 
curT=curT->right;
}
}
 
return true;
 
}
};

转载于:https://www.cnblogs.com/obama/p/3261004.html

你可能感兴趣的文章
T4高等级数据中心有章可循
查看>>
宁波工商局数据实时交换平台
查看>>
广东工商全省工商数据中心同城数据容灾备份系统需求
查看>>
3.JSON使用
查看>>
云呼叫中心发展的市场到来了
查看>>
linux 制作大容量文档解决容量过大的问题
查看>>
Linux运维 第二阶段 (九)shell编程
查看>>
MySQL生成随机数
查看>>
无需软件合并多个TS流文件
查看>>
HDU——2119 Matrix
查看>>
我的友情链接
查看>>
SCCM 2012 sp1无法连接远程数据库命名实例
查看>>
Linux学习之查看文件和文件夹大小
查看>>
明明白白你的Linux服务器——硬件篇(1)
查看>>
osgi启动级别
查看>>
php防止快速刷屏留言
查看>>
python 登录验证程序
查看>>
Linux
查看>>
限制linux 用户使用su命令转化root权限
查看>>
headfirst PMP-忽视项目职责范围会带来哪些问题?
查看>>