首页 > 其他分享 >dfs 验证搜索二叉树——leetcode98

dfs 验证搜索二叉树——leetcode98

时间:2024-09-14 18:35:08浏览次数:1  
标签:leetcode98 right TreeNode val nullptr dfs 二叉树 root left

代码来自leetcode官方

一开始我自己写这个代码时只注意当前节点是否会存在空指针,并没有注意到他的孩子节点也有可能为空,绕了我好久。。。。。。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    bool helper(TreeNode* root, long long lower, long long upper) {
        if (root == nullptr) {
            return true;
        }
        if (root -> val <= lower || root -> val >= upper) {
            return false;
        }
        //这个lower和upper操作避免了判断其孩子节点是否为空
        return helper(root -> left, lower, root -> val) && helper(root -> right, root -> val, upper);
    }
    bool isValidBST(TreeNode* root) {
        return helper(root, LONG_MIN, LONG_MAX);
    }
};

标签:leetcode98,right,TreeNode,val,nullptr,dfs,二叉树,root,left
From: https://www.cnblogs.com/oQAQo/p/18414530

相关文章

  • 信息学奥赛初赛天天练-89-CSP-S2023基础题1-linux常用命令、完全平方数、稀疏图、队列
    PDF文档公众号回复关键字:202409142023CSP-S选择题单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)1在Linux系统终端中,以下哪个命令用于创建一个新的目录?()AnewdirBmkdirCcreateDmkfold2从0,1,2,3,4中选取4个数字,能组成(......
  • bfs与dfs ,全球变暖——蓝桥problems178
    问题描述:........##.....##........##...####....###........有一张还以N*N的像素照片,“.”表示海洋,“#”表示陆地,其中上下左右能连在一起的陆地称作岛屿,例如上图有两座岛屿,由于全球气候变暖,靠经海洋的陆地会被淹没,问图中有多少座岛屿会被完全淹没..........................
  • Hadoop(十)HDFS API操作
    API操作Shell操作是在集群内部,即hadoop102上进行操作,API操作是希望在Windows上能远程连接集群实现增删改查操作一、客户端环境准备1、找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径2、在Windows上配置HADOOP_HOME环境变量3、配置Path环境变量4、验证H......
  • 【代码随想录Day17】二叉树Part05|练习递归
    654.最大二叉树题目链接/文章讲解:代码随想录视频讲解:又是构造二叉树,又有很多坑!|LeetCode:654.最大二叉树_哔哩哔哩_bilibili思路和昨天的从中序与后序遍历序列构造二叉树很像,那一题是根节点对数组分割,这一题是最大元素对数组分割。代码解释:基本检查:如果输入数组nums......
  • 树和二叉树基本术语、性质
    总结二叉树的度、树高、结点数等属性之间的关系(通过王道书5.2.3课后小题来复习“二叉树的性质”)树的相关知识 叶子结点的度=0层次默认从1开始有些题目从0开始也不要奇怪常见考点1:结点数=总度数+1 常见考点2:度为m的树和m叉树 常见考点3:度为m的树第i层至多有......
  • 代码随想录算法训练营,9月14日 | 530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,23
    530.二叉搜索树的最小绝对差题目链接:530.二叉搜索树的最小绝对差文档讲解︰代码随想录(programmercarl.com)视频讲解︰二叉搜索树的最小绝对差日期:2024-09-14想法:好好利用二叉搜索树中序遍历是有序的性质,设置一个节点表示前一个结点就能很方便的计算差值了Java代码如下:classSo......
  • Hadoop(九)HDFS Shell操作
    Shell操作一、基本语法hadoopfs具体命令hdfsdfs具体命令二、命令大全[user@hadoop102~]$hadoopfsUsage:hadoopfs[genericoptions] [-appendToFile<localsrc>...<dst>] [-cat[-ignoreCrc]<src>...] [-checksum<src>...] [-chgrp[-R]GROUPP......
  • dfs深度优先搜索
    面试题04.01.节点间通路-力扣(LeetCode)classSolution{public:booldfs(unordered_map<int,vector<int>>&adjList,vector<bool>&visited,intcurrent,inttarget){if(current==target){returntrue;}......
  • 【遍历二叉树】---先,中,后,层序遍历 及 先序建立整树
    0.二叉树结点的链式存储结构#include<stdio.h>#include<stdlib.h>typedefcharTElemType;//树中元素基本类型为char类型#defineboolint#definetrue1#definefalse0//二叉树结点链式存储结构(二叉链表)typedefstructBiNode{ TElemTypedata;//数据域 str......
  • 代码随想录算法训练营,9月13日 | 654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索
    654.最大二叉树题目链接:654.最大二叉树文档讲解︰代码随想录(programmercarl.com)视频讲解︰最大二叉树日期:2024-09-13想法:根据昨天中后序列构造二叉树的经验,要找到数组中的最大值的位置,可以设置两个指针表示子树的范围(左闭右开)Java代码如下:classSolution{publicTreeNo......