博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Validate Binary Search Tree
阅读量:4151 次
发布时间:2019-05-25

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

struct TreeNode {	int val;	TreeNode *left;	TreeNode *right;	TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {//hint: when involved with BST, always remember that special effect of in-order traversal//1. pass down the low and high limits from node to node//2. we can always do an in-order traversal of BST, then the value we visited should be in increasing order,//so we can check the previous is smaller than current valuepublic:	bool isBSTHelper(TreeNode* root, int low, int high)	{		if(!root)			return true;		if (low < root->val && high > root->val)			return isBSTHelper(root->left, low, root->val) 			       && isBSTHelper(root->right, root->val, high);		else return false;	}	bool isBSTHelper(TreeNode* root, int& prev)	{		if(!root)			return true;		return isBSTHelper(root->left, prev) && (root->val > prev)				&& ((prev = root->val)||true) && isBSTHelper(root->right, prev);			}	bool isValidBST(TreeNode *root) {		// Start typing your C/C++ solution below		// DO NOT write int main() function		//first solution		//return isBSTHelper(root, INT_MIN, INT_MAX);		//second solution		int prev = INT_MIN;		return isBSTHelper(root, prev);	}};

second time

/** * 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 isValidBSTUtil(TreeNode* root, int mmin, int mmax)    {        if(root == NULL) return true;        if(mmin < root->val && root->val < mmax)        {            return isValidBSTUtil(root->left, mmin, min(mmax, root->val))                    && isValidBSTUtil(root->right, max(mmin, root->val), mmax);        }        else return false;    }    bool isValidBST(TreeNode *root) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        int mmin = INT_MIN;        int mmax = INT_MAX;        return isValidBSTUtil(root, mmin, mmax);    }};

转载地址:http://xhxti.baihongyu.com/

你可能感兴趣的文章
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Commit our mod to our own repo server
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Simple Guide to use the gdb tool in Android environment
查看>>
Netconsole to capture the log
查看>>
Build GingerBread on 32 bit machine.
查看>>
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>
Linux initial RAM disk (initrd) overview
查看>>
Timestamping Linux kernel printk output in dmesg for fun and profit
查看>>
There's Much More than Intel/AMD Inside
查看>>
CentOS7 安装MySQL 5.6.43
查看>>
使用Java 导入/导出 Excel ----Jakarta POI
查看>>