二叉树问题思路
- 先序遍历(深度优先搜索)
- 中序遍历(深度优先搜索)(尤其二叉搜索树)
- 后序遍历(深度优先搜索)
- 层序遍历(广度优先搜索)(尤其按照层来解决问题的时候)
- 序列化与反序列化(结构唯一性问题)
98. 验证二叉搜索树
class Solution {
public:
TreeNode* pre;
bool isValidBST(TreeNode* root) {
if(root){
if(!isValidBST(root->left)){
return false;
}
if(pre && pre->val >= root->val){
return false;
}
pre = root;
if(!isValidBST(root->right)){
return false;
}
return true;
}else{
return true;
}
}
};
class Solution {
public:
TreeNode* pre;
bool isValidBST(TreeNode* root) {
stack<TreeNode*> s;
TreeNode* cur = root;
while(!s.empty()