LeetCode Validate Binary Search Tree

来源:互联网 发布:javascript 注释规范 编辑:程序博客网 时间:2024/04/29 23:28

天若有情天亦老,人间正道是沧桑。输了,在那没考虑全面甚至没去考虑全面而提交的一刻就输了,再回首,正是那年似曾相识的题目,躲在旮旯深处!

错了之后一想,记忆清晰呀,微策略面试题,在家里面试的,做之前却没想起来。所以还是原样子错过了。这题就是这么一个陷阱,明白了绕过来就行了。

bool isLeftRight(TreeNode *root,int &Biggest,int &Smallest) {if(root==NULL)return true;int leftBiggest,leftSmallest;if (root->left){if(root->val <= root->left->val)return false;if(!isLeftRight(root->left,leftBiggest,leftSmallest))return false;if(leftBiggest>=root->val)return false;}else{leftBiggest = leftSmallest = root->val;}int rightBiggest,rightSmallest;if (root->right){if(root->val >= root->right->val)return false;if(!isLeftRight(root->right,rightBiggest,rightSmallest))return false;if(rightSmallest<=root->val)return false;}else{rightBiggest = rightSmallest = root->val;}Biggest = leftBiggest>rightBiggest?leftBiggest:rightBiggest;Smallest = leftSmallest<rightSmallest?leftSmallest:rightSmallest;return true;}


0 0
原创粉丝点击