LeetCode 98. Validate Binary Search Tree
2017-03-18 21:14
537 查看
Description
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.
Example 1:
2 / \ 1 3
Binary tree
[2,1,3], return true.
Example 2:
1 / \ 2 3
Binary tree
[1,2,3], return false.
Solution
二叉搜索树的定义为:或者是一棵空树,或者是具有下列性质的 二叉树 : 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 其左、右子树也分别为二叉排序树 。因此直接采用遍历判断的方法,每次找到该节点左子树的最大值和右子树的最小值与当前节点比较,不满足条件则返回判断值false
,满足再判断左右子树是否都满足条件。
/** * 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) { if(!root) return true; if(root->left){ TreeNode *p = root->left; while(p->right) p = p->right; if(p->val>=root->val) return false; } if(root->right){ TreeNode *p = root->right; while(p->left) p = p->left; if(p->val<=root->val) return false; } return isValidBST(root->left)&&isValidBST(root->right); } };
相关文章推荐
- [leetcode]98. Validate Binary Search Tree@Java解题报告
- leetcode 98. Validate Binary Search Tree DFS深度优先搜索 + 两个递归函数 + 一个错误做法
- leetcode 98. Validate Binary Search Tree
- 【LeetCode】98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- leetcode 98. Validate Binary Search Tree
- [LeetCode] 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- [Leetcode]@python 98. Validate Binary Search Tree
- Leetcode 98. Validate Binary Search Tree
- leetcode 98. Validate Binary Search Tree
- Leetcode 98. Validate Binary Search Tree
- LeetCode *** 98. Validate Binary Search Tree
- Leetcode 98. Validate Binary Search Tree
- leetcode-98. Validate Binary Search Tree
- [leetcode] 98.Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- leetcode - 98.Validate Binary Search Tree
- LeetCode 98.Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree