二叉搜索樹中的搜索(力扣700)

首先介紹一下什么是二叉搜索樹。

? ? 二叉搜索樹是一個有序樹:

  • 若它的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值;
  • 若它的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值;
  • 它的左、右子樹也分別為二叉搜索樹;

    這就決定了,二叉搜索樹,遞歸遍歷和迭代遍歷和普通二叉樹都不一樣。
    就本題而言,我們使用遞歸法,遍歷的順序取決于節點的值的大小。而不是傳統的前中后序。
    大家可以結合我的代碼以及注釋理解此題。
    代碼及注釋如下:
    /*** 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:TreeNode* searchBST(TreeNode* root, int val) {//創建一個變量存放遞歸函數的返回值TreeNode* result;//終止條件1:遍歷到空節點if(root == NULL) return NULL;//終止條件2:遍歷到的節點值等與valif(root -> val == val) return root;//如果當前節點值較大,則左遞歸if(root -> val > val){result = searchBST(root -> left,val);}//如果當前節點值較小,則右遞歸if(root -> val < val){result =  searchBST(root -> right,val);}return result;}
    };

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67005.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67005.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67005.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pytest自動化測試 - 構造“預置條件”的幾種方式

<< 返回目錄 1 pytest自動化測試 - 構造“預置條件”的幾種方式 1.1 使用夾具構造預置條件 在夾具章節中&#xff0c;我們介紹了夾具的作用&#xff0c;其中一項就是構造預置條件。pytest.fixture裝飾器中如果測試數據使用yield返回&#xff0c;則yield前的語句為預置條…

微信小程序date picker的一些說明

微信小程序的picker是一個功能強大的組件&#xff0c;它可以是一個普通選擇器&#xff0c;也可以是多項選擇器&#xff0c;也可以是時間、日期、省市區選擇器。 官方文檔在這里 這里講一下date picker的用法。 <view class"section"><view class"se…

[java] 面向對象進階篇1--黑馬程序員

目錄 static 靜態變量及其訪問 實例變量及其訪問 靜態方法及其訪問 實例方法及其訪問 總結 繼承 作用 定義格式 示例 總結 子類不能繼承的內容 繼承后的特點 成員變量 成員變量不重名 成員變量重名 super訪問父類成員變量 成員方法 成員方法不重名 成員方法…

python3+TensorFlow 2.x 基礎學習(一)

目錄 TensorFlow 2.x基礎 1、安裝 TensorFlow 2.x 2、TensorFlow 2.x 基礎概念 2、1 Eager Execution 2、2 TensorFlow 張量&#xff08;Tensor&#xff09; 3、使用Keras構建神經網絡模型 3、1 構建 Sequential 模型 3、2 編譯模型 1、Optimizer&#xff08;優化器&a…

AI News(1/21/2025):OpenAI 安全疏忽:ChatGPT漏洞引發DDoS風險/OpenAI 代理工具即將發布

1、OpenAI 的安全疏忽&#xff1a;ChatGPT API 漏洞引發DDoS風險 德國安全研究員 Benjamin Flesch 發現了一個嚴重的安全漏洞&#xff1a;攻擊者可以通過向 ChatGPT API 發送一個 HTTP 請求&#xff0c;利用 ChatGPT 的爬蟲對目標網站發起 DDoS 攻擊。該漏洞源于 OpenAI 在處理…

openlava/LSF 用戶組管理腳本

背景 在openlava運維中經常需要自動化一些常規操作&#xff0c;比如增加用戶組以及組成員、刪除用戶組成員、刪除用戶組等。而openlava的配置文件需要手動修改&#xff0c;然后再通過badmin reconfig激活配置。因此開發腳本將手工操作自動化就很有必要。 通過將腳本中的User…

LLMs的星辰大海:大語言模型的前世今生

文章目錄 一. LLM 的演進&#xff1a;從規則到智能的躍遷 &#x1f4ab;1.1 語言模型的蹣跚起步 &#x1f476;1.2 RNN 與 LSTM&#xff1a;序列建模的嘗試 &#x1f9d0;1.3 Transformer 的橫空出世&#xff1a;自注意力機制的革命 &#x1f4a5;1.4 LLM &#xff1a;從預測到…

7-Zip高危漏洞CVE-2025-0411:解析與修復

7-Zip高危漏洞CVE-2025-0411&#xff1a;解析與修復 免責聲明 本系列工具僅供安全專業人員進行已授權環境使用&#xff0c;此工具所提供的功能只為網絡安全人員對自己所負責的網站、服務器等&#xff08;包括但不限于&#xff09;進行檢測或維護參考&#xff0c;未經授權請勿利…

數據結構(精講)----樹(應用篇)

特性&#xff1a; 什么是樹&#xff1a; 樹(Tree)是(n>0)個節點的有限集合T&#xff0c;它滿足兩個條件&#xff1a; (1) 有且僅有一個特定的稱為根&#xff08;Root&#xff09;的節點。 (2) 其余的節點可以分為m&#xff08;m≥0&#xff09;個互不相交的有限集合T1、…

【動態規劃】--- 斐波那契數模型

Welcome to 9ilks Code World (??? ? ???) 個人主頁: 9ilk (??? ? ???) 文章專欄&#xff1a; 算法Journey &#x1f3e0; 第N個泰波那契數模型 &#x1f4cc; 題目解析 第N個泰波那契數 題目要求的是泰波那契數&#xff0c;并非斐波那契數。 &…

如何確保Spring單例Bean在高并發環境下的安全性?

在Spring中&#xff0c;單例Bean就像是一個“公共的水杯”&#xff0c;整個應用程序中的所有線程都會共享這一個實例。在大部分情況下&#xff0c;這沒什么問題&#xff0c;但如果多個線程同時想要修改這個“水杯”里的內容&#xff0c;就可能會出現問題了。 想象一下&#xff…

期刊審稿意見回復的LaTeX模板分享

下載網址 https://github.com/NeuroDong/Latex_for_review_comments 效果展示 分享內容 在學術寫作過程中&#xff0c;回復審稿意見是一個重要且繁瑣的環節。由于審稿人眾多&#xff0c;使用Word進行排版往往效率低下。為了提高效率&#xff0c;我在網上找到了一個LaTeX模板…

Vue 3 30天精進之旅:Day 03 - Vue實例

引言 在前兩天的學習中&#xff0c;我們成功搭建了Vue.js的開發環境&#xff0c;并創建了我們的第一個Vue項目。今天&#xff0c;我們將深入了解Vue的核心概念之一——Vue實例。通過學習Vue實例&#xff0c;你將理解Vue的基礎架構&#xff0c;掌握數據綁定、模板語法和指令的使…

在Vue中,<img> 標簽的 src 值

1. 直接指定 src 的值&#xff08;適用于網絡圖片&#xff09; 如果你使用的是網絡圖片&#xff08;即圖片的URL是完整的HTTP或HTTPS鏈接&#xff09;&#xff0c;可以直接指定 src 的值&#xff1a; vue 復制 <template><div><img src"https://exampl…

Spring Boot/MVC

一、Spring Boot的創建 1.Spring Boot簡化Spring程序的開發,使用注解和配置的方式開發 springboot內置了tomact服務器 tomact:web服務器,默認端口號8080,所以訪問程序使用8080 src/main/java:Java源代碼 src/main/resource:靜態資源或配置文件,存放前端代碼(js,css,html) s…

Spring--SpringMVC的調用流程

一.簡介 1.1主要作用 SSM框架構建起單的技術棧需求&#xff01;其中的SpringMVC負責表述層&#xff08;控制層&#xff09;實現簡化&#xff01; 最終總結&#xff1a; 1. 簡化前端參數接收( 形參列表 )2. 端數據響應(返回值)1.2核心組件和調用流程 Spring MVC與許多其他Web…

C#集合排序的三種方法(List<T>.Sort、LINQ 的 OrderBy、IComparable<T> 接口)

見過不少人、經過不少事、也吃過不少苦&#xff0c;感悟世事無常、人心多變&#xff0c;靠著回憶將往事串珠成鏈&#xff0c;聊聊感情、談談發展&#xff0c;我慢慢寫、你一點一點看...... 1、使用 List<T>.Sort 方法與自定義比較器 public class Person{public string …

從ChatGPT熱潮看智算崛起

2025年1月7日&#xff0c;科智咨詢發布《2025年IDC產業七大發展趨勢》&#xff0c;其中提到“ChatGPT開啟生成式AI熱潮&#xff0c;智能算力需求暴漲&#xff0c;算力供給結構發生轉變”。 【圖片來源于網絡&#xff0c;侵刪】 為何會以ChatGPT發布為節點呢&#xff1f;咱們一起…

Frida使用指南(三)- Frida-Native-Hook

1.Process、Module、Memory基礎 1.Process Process 對象代表當前被Hook的進程,能獲取進程的信息,枚舉模塊,枚舉范圍等 2.Module Module 對象代表一個加載到進程的模塊(例如,在 Windows 上的 DLL,或在 Linux/Android 上的 .so 文件), 能查詢模塊的信息,如模塊的基址、名…

Electron學習筆記,安裝環境(1)

1、支持win7的Electron 的版本是18&#xff0c;這里node.js用的是14版本&#xff08;node-v14.21.3-x86.msi&#xff09;云盤有安裝包 Electron 18.x (截至2023年仍在維護中): Chromium: 96 Node.js: 14.17.0 2、安裝node環境&#xff0c;node-v14.21.3-x86.msi雙擊運行選擇安…