LeetCode: Validate Binary Search Tree
来源:互联网 发布:java list模糊查询 编辑:程序博客网 时间:2024/04/29 11:05
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.
中序遍历,逐个判断。
/** * 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 == NULL) return true; stack<TreeNode*> stk; TreeNode* p = root; int preVal = -1; int first = true; do { if (p != NULL) { stk.push(p); p = p->left; } else { p = stk.top(); stk.pop(); if (first) { preVal = p->val; first = false; } else { if (preVal < p->val) { preVal = p->val; } else return false; } p = p->right; } }while(!stk.empty() || p != NULL); return true; }};
- LeetCode: Validate Binary Search Tree
- [Leetcode] Validate Binary Search Tree
- LeetCode : Validate Binary Search Tree
- [LeetCode] Validate Binary Search Tree
- [LeetCode] Validate binary search tree
- [LeetCode]Validate Binary Search Tree
- [Leetcode]Validate Binary Search Tree
- [leetcode]Validate Binary Search Tree
- LeetCode-Validate Binary Search Tree
- [leetcode] Validate Binary Search Tree
- LeetCode - Validate Binary Search Tree
- [LeetCode] Validate Binary Search Tree
- Leetcode Validate Binary Search Tree
- LeetCode | Validate Binary Search Tree
- LeetCode - Validate Binary Search Tree
- Leetcode: Validate Binary Search Tree
- 【Leetcode】Validate Binary Search Tree
- 【leetcode】Validate Binary Search Tree
- Fragment_学习2
- POJ 3259 Wormholes
- Oracle的时区问题
- arm上ldrex和strexeq指令用来尝试获取独占内存权限和设置在独占权限时回写
- Quartz使用
- LeetCode: Validate Binary Search Tree
- 优秀有价值的博客收藏列表
- phpCodeBeautifier的批量美化php代码
- Linux多线程编程
- 浅谈大数据存储最容易出现哪些问题
- OCS: LYNC SERVER如何启用TCP登录?
- ubuntu 12.04 开启root
- MYLP标签打印程序
- OCS: OCS 2007上利用命令行发送广播消息