// C++ boolisValidBST(TreeNode* root){ if (!root) { returntrue; } stack<TreeNode*> s; auto p = root; TreeNode* pre = NULL; while (!s.empty() || p) { while (p) { s.push(p); p = p->left; } p = s.top(); s.pop(); // 中序遍历中,此节点值比上个节点值小 if (pre && p->val <= pre->val) { returnfalse; } pre = p; p = p->right; } returntrue; }