98. Validate Binary Search Tree(通过确定上下界进行递归)

xiaoxiao2021-02-28  85

题目:

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.

代码:

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool isValidBST(TreeNode* root) { return isValidBST(root,nullptr,nullptr); } bool isValidBST(TreeNode *root,TreeNode *minode,TreeNode *maxnode){ if(root==nullptr) return true; if((minode&&minode->val>=root->val)||(maxnode&&maxnode->val<=root->val)) return false; return isValidBST(root->left,minode,root)&&isValidBST(root->right,root,maxnode); } };

笔记:

DFS类型的题目,通过上下界范围的确定进行递归的技巧
转载请注明原文地址: https://www.6miu.com/read-79229.html

最新回复(0)