leetcode:98. 验证二叉搜索树

学习要点

加深纯递归算法的理解

题目链接

98. 验证二叉搜索树 - 力扣(LeetCode)

题目描述

解法:纯递归

cpp 复制代码
vector<int> v;
    void dfs(TreeNode* root)
    {
        if(root == nullptr)
        {
            return;
        }
        dfs(root->left);
        v.push_back(root->val);
        dfs(root->right);
    }

    bool isValidBST(TreeNode* root) {     
        dfs(root);
        int flag = true;
        for(int i = 0; i<v.size();i++)
        {
            if(i > 0)
            {
                if(v[i] <= v[i-1])
                {
                    flag = false;
                    break;
                }
            }
        }
        return flag;
    }

解析

  1. 搜索二叉树的中序遍历是一个升序序列
  2. 中序遍历该二叉树,将其存入数组vector中
  3. 遍历这个数组,判断是否是一个升序数组
相关推荐
cynicme5 小时前
力扣3228——将 1 移动到末尾的最大操作次数
算法·leetcode
熬了夜的程序员5 小时前
【LeetCode】109. 有序链表转换二叉搜索树
数据结构·算法·leetcode·链表·职场和发展·深度优先
随意起个昵称5 小时前
【递归】二进制字符串中的第K位
c++·算法
测试老哥5 小时前
软件测试之单元测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
mjhcsp5 小时前
C++ 循环结构:控制程序重复执行的核心机制
开发语言·c++·算法
立志成为大牛的小牛5 小时前
数据结构——四十一、分块查找(索引顺序查找)(王道408)
数据结构·学习·程序人生·考研·算法
xier_ran6 小时前
深度学习:RMSprop 优化算法详解
人工智能·深度学习·算法
地平线开发者6 小时前
不同传感器前中后融合方案简介
算法·自动驾驶
地平线开发者6 小时前
征程 6X 常见 kernel panic 问题
算法·自动驾驶