博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Validate Binary Search Tree 验证二叉搜索树
阅读量:4184 次
发布时间:2019-05-26

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

题目:
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.

解法一:

// Recursion without inorder traversalclass Solution {public:    bool isValidBST(TreeNode *root) {        return isValidBST(root, LONG_MIN, LONG_MAX);    }    bool isValidBST(TreeNode *root, long mn, long mx) {        if (!root) return true;        if (root->val <= mn || root->val >= mx) return false;        return isValidBST(root->left, mn, root->val) && isValidBST(root->right, root->val, mx);    }};

解法二:

// Recursionclass Solution {public:    bool isValidBST(TreeNode *root) {        if (!root) return true;        vector
vals; inorder(root, vals); for (int i = 0; i < vals.size() - 1; ++i) { if (vals[i] >= vals[i + 1]) return false; } return true; } void inorder(TreeNode *root, vector
&vals) { if (!root) return; inorder(root->left, vals); vals.push_back(root->val); inorder(root->right, vals); }};

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

你可能感兴趣的文章
数据库水平扩展与垂直扩展
查看>>
异地多活问题
查看>>
Http_load测试说明
查看>>
nginx优化——包括https、keepalive等
查看>>
记一次压力测试和对nginx/tomcat配置的调整
查看>>
第二章 HttpClient 连接管理
查看>>
tcpdump抓包分析TCP三次握手过程
查看>>
tcpdump过滤某个端口
查看>>
TCP协议中FLAG的含义
查看>>
详解 Tomcat 的连接数与线程池
查看>>
tomcat中server.xml配置详解
查看>>
tomcat架构分析(概览)
查看>>
构分析(connector BIO 实现)
查看>>
Java并发之AQS详解
查看>>
Thread类的使用
查看>>
java如何处理中断
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)
查看>>
Java并发编程:并发容器之CopyOnWriteArrayList(转载)
查看>>
清晰理解红黑树的演变---红黑的含义
查看>>
图解堆排序
查看>>