Leetcode98、230:二叉搜索樹——遞歸學習

什么是二叉搜索樹:右子樹節點 > 根節點 > 左子樹節點,

  1. 二叉搜索樹中的搜索,返回給定值val所在的樹節點

    1. 終止條件為傳進來的節點為空、或者節點的值 == val值,返回這個節點;

    2. 單程遞歸邏輯:定義一個result節點接受結果。如果val < root的值,說明 val 的值 應該在當前root的左子樹中,result = search(root->left, val); 同理,如果 val > right, 那么 遞歸遍歷右子樹。

  2. Leetcode98:驗證二叉搜索樹 isValidBST( )

    ??題目描述:

    1. ??思路:中序遍歷是升序。中序遍歷存數組,判斷數組是遞增的。
    2. 1、參數值 返回值:題目已給

    3. 2、遞歸終止條件。if( root == nullptr) return true;

    4. 單程搜索邏輯:先左、中、右進行中序遍歷數組,然后吧節點值加入到數組中。然后判斷數組是否有序。

    5. // 思路2:vector<int> arr;bool isValidBST(TreeNode* root) {if( root == nullptr)    return true;isValidBST(root->left); //一直走到左子樹到底arr.push_back(root->val);isValidBST(root->right);//判斷arr是否有序for(int i=0; i<arr.size()-1; i++){if(arr[i] >= arr[i+1]){return false;}}return true;}

  3. Leetcode230:二叉搜索樹種的第 K 小的元素

    
    

    1. 題目描述:給定一個BFS的根節點root,一個整數K,找到樹種第K 小的原色

    2. 思路:中序遍歷BFS是升序,中序遍歷節點并存到數組vec中,然后從數組中找地k個小的元素,即vec[k-1];

    3. 實現:中序遍歷遞歸三部曲。

      1. 1、返回值和參數。題目已經給出。

      2. 2、遞歸終止條件。root為空。

      3. 3、單層搜索。先左,在中(中的時候處理一下節點進入數組)。3、在遞歸右子樹。

    4. 代碼實現:

    5. class Solution {
      public:vector<int> vec;int kthSmallest(TreeNode* root, int k) {//中序遍歷,存數組inorder(root);return vec[k-1];}void inorder(TreeNode* root){if(root == nullptr) return;inorder(root->left);vec.push_back(root->val);inorder(root->right);return;}
      };

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

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

相關文章

每天學一個 Linux 命令(30):cut

??可訪問網站查看,視覺品味拉滿: http://www.616vip.cn/30/index.html cut 命令用于從文件或輸入流中提取文本的特定部分(如列、字符或字節位置)。它常用于處理結構化數據(如 CSV、TSV)或按固定格式分割的文本。以下是詳細說明和示例: 命令格式 cut [選項] [文件...]…

Tauri 2.3.1+Leptos 0.7.8開發桌面應用--Sqlite數據庫選中數據的表格輸出

在前期工作的基礎上&#xff08;Tauri 2.3.1Leptos 0.7.8開發桌面應用--Sqlite數據庫的寫入、展示和選擇刪除_tauri leptos sqlite 選擇刪除-CSDN博客&#xff09;&#xff0c;實現將選中的數據實時用表格展示出來&#xff0c;效果如下&#xff1a; 1. 后臺invoke調用命令 Tau…

使用Tauri 2.3.1+Leptos 0.7.8開發桌面小程序匯總

近期斷斷續續學習了Rust編程&#xff0c;使用Tauri 2.3.1Leptos 0.7.8開發了一個自用的桌面小程序。Win10操作系統&#xff0c;使用VS Code及rust analyzer插件搭建的開發環境&#xff0c;后期開始使用Roo Code綁定DeepSeek API 輔助編程&#xff0c;對我這個初學者編程幫助很大…

考研英一學習筆記

2024 年全國碩士研究生招生考試 英語&#xff08;一&#xff09;試題 &#xff08;科目代碼&#xff1a;201&#xff09; Section Ⅰ Use of English Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B, C or D on the ANS…

【技術筆記】Cadence實現Orcad與Allegro軟件交互式布局設置

【技術筆記】Cadence實現Orcad與Allegro軟件交互式布局設置 更多內容見專欄&#xff1a;【硬件設計遇到了不少問題】、【Cadence從原理圖到PCB設計】 在做硬件pcb設計的時候&#xff0c;原理圖選中一個元器件&#xff0c;希望可以再PCB中可以直接選中。 為了達到原理圖和PCB兩兩…

卷積神經網絡(CNN)詳解

文章目錄 引言1.卷積神經網絡&#xff08;CNN&#xff09;的誕生背景2.卷積神經網絡&#xff08;CNN&#xff09;介紹2.1 什么是卷積神經網絡&#xff1f;2.2 卷積神經網絡&#xff08;CNN&#xff09;的基本特征2.2.1 局部感知&#xff08;Local Connectivity&#xff09;2.2.…

8051單片機所有Keil C51匯編偽指令和C語言關鍵字大全

8051單片機所有Keil C51匯編偽指令和C語言關鍵字大全 作者將狼才鯨創建日期2025-04-21 CSDN閱讀地址&#xff1a;8051單片機所有Keil匯編偽指令和C語言關鍵字的詳細解釋 8051單片機所有Keil匯編偽指令和C語言關鍵字的詳細解釋&#xff0c;在Keil已安裝文件夾D:\Keil_v5\C51\H…

機器視覺的智能手機屏貼合應用

在智能手機制造領域&#xff0c;屏幕貼合工藝堪稱"微米級的指尖芭蕾"。作為影響觸控靈敏度、顯示效果和產品可靠性的關鍵工序&#xff0c;屏幕貼合精度直接決定了用戶體驗。傳統人工對位方式已無法滿足全面屏時代對極窄邊框和超高屏占比的嚴苛要求&#xff0c;而Mast…

運維打鐵:網絡基礎知識

文章目錄 一、網絡架構1. 網絡架構圖2. 各層級功能3. 機房網絡常見問題及解決方案 二、交換技術1. 交換技術基礎2. 交換技術分類3. 廣播域相關概念4. ARP 協議5. 三層交換機6. VLAN&#xff08;虛擬局域網&#xff09; 三、路由技術1. 路由器端口類型及功能2. 路由器功能3. 路由…

使用C#和FFmpeg開發RTSP視頻播放器的完整指南

RTSP(Real Time Streaming Protocol)是流媒體技術中廣泛使用的協議&#xff0c;廣泛應用于視頻監控、視頻會議和在線直播等領域。本文將詳細介紹如何使用C#和FFmpeg開發一個功能完整的RTSP視頻播放器&#xff0c;涵蓋從環境搭建到核心功能實現的全部過程。 一、開發環境準備 …

前端基礎之《Vue(9)—混入》

一、什么是混入 1、是一種代碼復用的技巧 Vue組件是由若干選項組成的&#xff0c;向組件中混入可復用的選項。 2、作用 比如我封裝兩個組件&#xff0c;一個是A組件&#xff0c;一個是B組件&#xff0c;發現它里面有相同的選項&#xff0c;就可以用混用的方式來復用它。 二、…

Anything V4/V5 模型匯總

??????二次元風格生成擴散模型-anything-v4.0Stable Diffusion anything-v5-PrtRE模型介紹及使用深度探索 Anything V5&#xff1a;安裝與使用全攻略anything-v5x0.25少兒插畫_v1xyn-ai/anything-v4.0

一天學完Servlet!!!(萬字總結)

文章目錄 前言Servlet打印Hello ServletServlet生命周期 HttpServletRequest對象常用api方法請求亂碼問題請求轉發request域對象 HttpServletResponse對象響應數據響應亂碼問題請求重定向請求轉發與重定向區別 Cookie對象Cookie的創建與獲取Cookie設置到期時間Cookie注意點Cook…

Springboot整合 xxljob,自定義添加、修改、刪除、停止、啟動任務

目錄 一、模擬登錄方式 二、注解方式 三、訪問者調用 四、測試 本次自定義方式分為兩種&#xff1a;一種是模擬登錄&#xff0c;另一種是使用注解的方式 一、模擬登錄方式 修改xxl-job-admin工程&#xff0c;在controller里面添加一個MyApiController&#xff0c;在里面添…

STM32F407使用ESP8266實現阿里云OTA(中)

文章目錄 前言一、程序分析二、程序講解1. main函數2. Get_Version()函數3. esp_Init()函數4. Check_Updata()函數結語前言 從上一章STM32F407使用ESP8266實現阿里云OTA(上)中我們已經對連接阿里云和從阿里云獲取升級包的流程非常的熟悉了。所以本章我們進行STM32的程序開發…

Docker部署DeepSeek常見問題及解決方案

在使用Docker部署DeepSeek的過程中,許多開發者可能會遇到一些常見問題。本文整理了幾個高頻問題及其解決方案,幫助大家更順利地完成部署。 鏡像拉取失敗 問題現象 執行 docker pull 命令時,提示超時或鏡像不存在。 可能原因 1. 網絡環境不穩定,導致連接Docker Hub失敗…

Linux 內核 IPv4 套接字創建機制與協議表管理深度解析

一、inet_create:IPv4 套接字創建的核心引擎 1.1 核心功能與執行流程 inet_create 是 Linux 內核處理 socket(AF_INET, type, protocol) 系統調用的核心實現,主要完成以下關鍵任務: 協議匹配與初始化:根據套接字類型和協議號匹配協議處理模塊 資源分配:創建并初始化套接…

網絡:手寫HTTP

目錄 一、HTTP是應用層協議 二、HTTP服務器 三、HTTP服務 認識請求中的uri HTTP支持默認首頁 響應 功能完善 套接字復用 一、HTTP是應用層協議 HTTP下層是TCP協議&#xff0c;站在TCP的角度看&#xff0c;要提供的服務是HTTP服務。 這是在原來實現網絡版計算器時&am…

論文筆記(七十八)Do generative video models understand physical principles?

Do generative video models understand physical principles? 文章概括Physics-IQ基準數據集評估協議為什么要創建一個真實世界的Physics-IQ數據集模型物理理解的評估指標動作發生在哪里&#xff1f;空間IoU&#xff08;Spatial IoU&#xff09;動作在哪里、何時發生&#xf…