本文共 1735 字,大约阅读时间需要 5 分钟。
问题:
Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
confused what "{1,#,2,3}"
means?
根据二叉查找树的定义:
class Solution {public: bool isValidBST(TreeNode *root) { int max, min; return isBST(root, max, min); } bool isBST(TreeNode *node, int &max, int &min) { int leftmax; int leftmin; int rightmax; int rightmin; if(node == NULL) return true; if(node->left == NULL && node->right == NULL) { max = node->val; min = node->val; return true; } else if(isBST(node->left, leftmax, leftmin) && isBST(node->right, rightmax, rightmin)) { if(node->left == NULL && node->val < rightmin) { max = rightmax; min = node->val; return true; } else if(node->right == NULL && node->val > leftmax) { max = node->val; min = leftmin; return true; } else if(leftmax < node->val && node->val < rightmin) { max = rightmax; min = leftmin; return true; } return false; } else { return false; } }};
转载地址:http://gktsi.baihongyu.com/