力扣700,二叉搜索树中的搜索

news/2024/9/25 0:14:21/

700. 二叉搜索树中的搜索 - 力扣(LeetCode)

法1,递归

给定二叉搜索树(BST)的根节点 root 和一个整数值 val

你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode searchBST(TreeNode root, int val) {if(root==null) return null;if(root.val == val) return root;TreeNode r = new TreeNode(); if(root.val < val){r = searchBST(root.right,val);//searchBS()函数是有返回值的,所以要用一个变量接住的}if(root.val>val){r = searchBST(root.left,val);}return r;}
}

法2,迭代 

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*///迭代
class Solution {public TreeNode searchBST(TreeNode root, int val) {while(root!=null){if(root.val > val) return searchBST(root.left,val);if(root.val < val) return searchBST(root.right,val);return root;}return null;}
}

 


http://www.ppmy.cn/news/1439643.html

相关文章

【计算机网络】(三)物理层 - 通信基础

文章目录 【计算机网络】&#xff08;三&#xff09;物理层 - 通信基础前言3.1 物理层的基本概念3.2 数据通信的基础知识3.2.1 数据、信号、码元3.2.2 信源、信宿、信道3.2.3 编码、调制3.2.3.1 基带调制&#xff08;编码&#xff09;3.2.3.2 带通调制&#xff08;调制&#xf…

【定制化体验:使用Spring Boot自动配置,打造个性化Starter】

项目结构 Pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4…

linux系统-FTP服务配置

目录 一、FTP简介 1.什么是FTP&#xff1f;&#xff1f;&#xff1f; 2.FTP的两种模式 二、安装配置FTP服务 1.关闭防火墙和核心防护 2.安装VSFTPD 3.修改配置文件 4.黑白名单设置 一、FTP简介 1.什么是FTP&#xff1f;&…

Django连接数据库

数据库登录命令 mysql -u root -p show databases; Django连接数据库 在settings.py文件中进行配置和修改 DATABASES {default: {ENGINE: django.db.backends.mysql,HOST: 127.0.0.1, # 数据库主机PORT: 3306, # 数据库端口USER: root, # 数据库用户名PASSWORD: 12345…

材质系统(1):起源与概念

目录 前言 1. 材质系统的源头 2. 材质系统与光照模型的关系 前言 材质系统是计算机图形学的一部分。在图形学中&#xff0c;材质(Material)是一种描述表面外观的属性。在三维计算机图形中&#xff0c;通常需要为每个物体指定材质&#xff0c;以便在渲染时准确地呈现物体的外…

探索树与二叉树:从基础到应用的完整指南

目录 一.树的基本概念 二.二叉树的概念 三.二叉树的遍历和线索二叉树 四.树和森林 五.树与二叉树的应用 六.实际案例 七.总结 一.树的基本概念 树是一种非线性的数据结构&#xff0c;由节点和边组成的有限集合。树的结构类似于自然界中的树&#xff0c;从根部开始&#xff…

图像处理之Retinex算法(C++)

图像处理之Retinex算法&#xff08;C&#xff09; 文章目录 图像处理之Retinex算法&#xff08;C&#xff09;前言一、单尺度Retinex&#xff08;SSR&#xff09;1.原理2.代码实现3.结果展示 二、多尺度Retinex&#xff08;MSR&#xff09;1.原理2.代码实现3.结果展示 三、带色…

Android 分享页面下载app后 自动填充邀请码

android 分享出去h5页面&#xff0c;通过页面下载对应包&#xff0c;安装启动登录注册时候&#xff0c;需要自动填写邀请码&#xff0c;一般情况下&#xff0c;我们需要将分享人信息写入app包中&#xff0c;这样下载时候根据这个信息可以获取到对应安装包。 android我们可以把…