zoukankan      html  css  js  c++  java
  • 98. 验证二叉搜索树

    题目

    代码

    /**
     * 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* minNode, TreeNode* maxNode) {
             //此节点不存在,返回true
    	    if (!root) return true;
             //此结点比最大值要大或者比最小值要小.
    	    if (minNode && root->val <= minNode->val || maxNode && root->val >= maxNode->val)
    		    return false;
             //继续判断左边或者右边,判断左边的时候传入最大值为root,判断右边的时候传入最小值为root
    	    return isValidBST(root->left, minNode, root) && isValidBST(root->right, root, maxNode);
         }
    };

    思路

    不懂的可以看代码注释。

    https://github.com/li-zheng-hao
  • 相关阅读:
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I作业12
    C语言I博客作业11
    C语言I博客作业10
    C语言I博客作业09
    C语言I作业08
    C语言ㅍ作业01 结构:通讯录
    C语言寒假大作战04
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053628.html
Copyright © 2011-2022 走看看