二叉树——700. 二叉搜索树中的搜索、98. 验证二叉搜索树

二叉搜索树中的搜索

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。
你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。

示例 1:
在这里插入图片描述

输入:root = [4,2,7,1,3], val = 2
输出:[2,1,3]
示例 2:

重点

1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值
2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值
3. 它的左、右子树也分别为二叉搜索树
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:if root == None:return Noneif root.val == val:return rootelif root.val > val:return self.searchBST(root.left, val)elif root.val < val:return self.searchBST(root.right, val)
验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

  • 节点的左子树只包含 小于 当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

示例 1:

在这里插入图片描述

输入:root = [2,1,3]
输出:true

重点

二叉搜索树中序遍历满足 “ 持续递增 ” 的规律。
1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
3. 它的左、右子树也分别为二叉搜索树
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def __init__(self):self.vec = []def traversa1(self, root):if root == None:return self.traversa1(root.left)self.vec.append(root.val)self.traversa1(root.right)def isValidBST(self, root: Optional[TreeNode]) -> bool:self.vec = []self.traversa1(root)for i in range(1, len(self.vec)):if self.vec[i] < self.vec[i-1]:return Falsereturn True

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513498.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024全国水科技大会暨新能源及电子行业废水论坛(十一)

一、会议背景 为深入学习贯彻《中共中央、国务院关于全面推进美丽中国建设的意见》&#xff0c;全面贯彻实施《固体废物污染环境防治法》、《“十四五”全国城市基础设施建设规划》&#xff0c;推进我国污泥处理工程建设&#xff0c;提高处理产物资源化利用水平&#xff0c;促进…

分享两会焦点热词,深化AI多场景应用,推动大模型垂直化与产业化

大模型、机器人、智能制造、自动驾驶……过去一年&#xff0c;人工智能频上头条&#xff0c;也成为今年北京两会上的热词。全球新一轮技术变革加速来临&#xff0c;大模型作为人工智能发展的核心引擎&#xff0c;正引发一场全新的工业革命。 在这一关键时期&#xff0c;全国政协…

7.2.2 用坐标表示平移 教案设计及课堂检测设计

【学习目标】 1&#xff0e;掌握坐标变化和图形平移的关系&#xff0c;能用点的平移规律求点平移后的点的坐标&#xff0e; 2&#xff0e;会按要求画出平移后的图形&#xff0c;并写出顶点的坐标&#xff0e;

2024上教师资格证模考大赛(第六季)信息技术学科知识与教学能力

2.利用搜索引擎在网上搜索信息&#xff0c;有时需要增大搜索范围以便于准确查找需要的信息&#xff0c;下列能增大搜索范围的做法是&#xff08; B&#xff09;。 A使用逻辑控制符and&#xff0c;增加搜索关键词 B减少所用的关键词&#xff0c;减少搜索条件 C使用多个关键词&…

【PCL】(十八)随机采样一致性(RANSAC)模型

&#xff08;十八&#xff09;RANdom SAmple Consensus(RANSAC)模型 假设我们正在查看的所有数据都由内部值和外部值(异常值)组成&#xff0c;其中内部值可以用一组特定参数值的模型来解释&#xff0c;而异常值则不适合该模型。RANSAC用于估计内部值的数学模型参数。 下面的图…

Linux网络隧道协议IPIP认知(基于Linux network namespace 的 IPIP 隧道通信)

写在前面 博文内容为 Linux 隧道通信 IPIP认知内容涉及&#xff1a;ipip 介绍&#xff0c;一个 ipip 通信 Demo 以及数据帧流转分析理解不足小伙伴帮忙指正 某些人和事&#xff0c;哪怕没有缘分&#xff0c;是路边的风景&#xff0c;可是只要看一眼&#xff0c;依然会让人觉得…

dolphinscheduler海豚调度(四)钉钉告警

在之前的博文中&#xff0c;我们已经介绍了DolphinScheduler海豚调度的基本概念和工作流程&#xff0c;以及Shell任务和SQL任务的实践。今天&#xff0c;让我们来学习DolphinScheduler中的另一个重要功能&#xff1a;钉钉告警。 钉钉群添加机器人 在钉钉群添加机器人&#xf…

2024 DataGrip 激活,分享几个DataGrip 激活的方案

大家好&#xff0c;欢迎来到金榜探云手&#xff01; DataGrip 公司简介 JetBrains 是一家专注于开发工具的软件公司&#xff0c;总部位于捷克。他们以提供强大的集成开发环境&#xff08;IDE&#xff09;而闻名&#xff0c;如 IntelliJ IDEA、PyCharm、和 WebStorm等。这些工…

环信 Vue2 uniapp Demo重构焕新!经典再升级!

重构目标 本次重构中原始 Demo 代码逻辑完全重写&#xff0c;原有目录结构以及消息相关组件进行重新调整&#xff0c;在 SDK 的调用方式以及实现逻辑上也进行升级调整。此次重构中会话列表、消息列表等数据不再进行本地存储&#xff0c;而是远端进行拉取&#xff0c;更换设备也…

Claude 3 模型发布,压力来到OpenAI这边了~

Anthropic 发布了 Claude 3 系列&#xff0c;包含了三款模型 各具特色&#xff0c;旨在为用户提供更智能、更快速、更高效的选择&#xff0c;可以说是是迄今为止最快、最强大的人工模型&#xff01; Anthropic 一度是 OpenAI 最强力的竞争对手&#xff01; 随着 Claude3 的发…

Live Home 3D Pro:您的私人家居设计师,让家更有温度

Live Home 3D Pro是一款功能强大的家居设计软件&#xff0c;它凭借直观的用户界面和丰富的设计工具&#xff0c;为用户提供了一个全新的家居设计体验。无论您是专业设计师还是普通用户&#xff0c;Live Home 3D Pro都能帮助您轻松实现家居设计的梦想。 Live Home 3D Pro mac版…

前端学习之HTML(第二天)--多媒体标签和表格标签

注&#xff1a;里面的注释是对各个标签的解释 多媒体标签 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title> </head> <body> <!-- audio是音频可以填写绝对路径也可填写相对路径 --> &l…