HOT100--Day15--98. 驗證二叉搜索樹,230. 二叉搜索樹中第 K 小的元素,199. 二叉樹的右視圖

HOT100–Day15–98. 驗證二叉搜索樹,230. 二叉搜索樹中第 K 小的元素,199. 二叉樹的右視圖

每日刷題系列。今天的題目是《力扣HOT100》題單。

題目類型:二叉樹。

關鍵:要深刻理解《遞歸》

98. 驗證二叉搜索樹

思路:

看到二叉搜索樹一定要想起“中序遍歷”

利用一個pre變量,記錄前驅節點。

中序遍歷一次,就相當于遍歷了一個單調數組。

class Solution {// 前驅節點private long pre = Long.MIN_VALUE;public boolean isValidBST(TreeNode root) {if (root == null) {return true;}// 左if (!isValidBST(root.left)) {return false;}// 中(本節點)// 如果違反單調性,向上返回falseif (root.val <= pre) {return false;}// 更新前驅節點pre = root.val;// 右if (!isValidBST(root.right)) {return false;}return true;}
}

230. 二叉搜索樹中第 K 小的元素

思路:

看到二叉搜索樹一定要想起“中序遍歷”。

中序遍歷,相當于用for遍歷了一個有序數組。返回數組中索引為k的元素。

class Solution {private int index = 0;private int k;private int target;public int kthSmallest(TreeNode root, int k) {this.k = k;midorder(root);return target;}// 中序遍歷,相當于用for遍歷了一個有序數組。返回數組中索引為k的元素。private void midorder(TreeNode node) {// 多寫一個index>=k,可以提前return,剪枝if (node == null || index >= k) {return;}if (node.left != null) {midorder(node.left);}// 中if (++index == k) {target = node.val;return;}if (node.right != null) {midorder(node.right);}}
}

199. 二叉樹的右視圖

思路:

先遞歸到右子樹,進入新depth的第一個節點就會是最右邊的

class Solution {List<Integer> res = new ArrayList<>();public List<Integer> rightSideView(TreeNode root) {dfs(root, 1);return res;}private void dfs(TreeNode node, int depth) {if (node == null) {return;}// 記錄進入這個深度的第一個節點if (depth > res.size()) {res.add(node.val);}// 先遞歸到右子樹,進入新depth的第一個節點就會是最右邊的dfs(node.right, depth + 1);dfs(node.left, depth + 1);}}

思路:

也可以用層序遍歷解決這道題。迭代法。

//  層序遍歷,每層的最后一個元素拿出來。
class Solution {public List<Integer> rightSideView(TreeNode root) {List<Integer> res = new ArrayList<>();if (root == null) {return res;}Deque<TreeNode> que = new ArrayDeque<>();que.offer(root);while (!que.isEmpty()) {int levelCount = que.size();for (int i = 0; i < levelCount; i++) {TreeNode node = que.pop();// 右子樹先入隊,就是把每層第一個元素拿出來if (node.right != null) {que.offer(node.right);}if (node.left != null) {que.offer(node.left);}// 當i是本層第一個節點的時候,把值加入到res里if (i == 0) {res.add(node.val);}}}return res;}
}

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

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

相關文章

獨角數卡對接藍鯨支付平臺實現個人

目錄 什么是獨角數卡&#xff1f;安裝部署教程一、獨角數卡安裝二、獨角數卡支付配置三、獨角數卡BUG修復 什么是獨角數卡&#xff1f; ? ? ? ? ? ? ? 獨角數卡(Dujiaoka)?是一款基于Laravel框架開發的開源式站長自動化售貨解決方案&#xff0c;主要用于虛擬商品和數字…

人工智能常見分類

人工智能的分類方式多樣&#xff0c;以下是一些常見的分類方法及具體類型&#xff1a; 一、按功能目標分類 弱人工智能&#xff08;ANI&#xff0c;Narrow AI&#xff09;&#xff1a;專注于單一任務&#xff0c;無自主意識&#xff0c;如圖像識別&#xff08;人臉解鎖&#xf…

PO BAPI bapi_po_create1

當執行BAPI時,需要導入增強字段,其中增強字段包含數值型號字段時,需要增強BADI::ME_BAPI_PO_CUST 代碼如下: 記錄一下,下次自己繼續用 bapi處: ls_te_item-po_item = lv_item.ls_te_item-zz001 = 11.ls_te_item-zz005 = 22.ls_te_item-zz008 = 33.ls_te_item-zz009 = 44…

棧欺騙技術的作用是什么?

好的&#xff0c;我們來詳細解釋一下“棧欺騙技術”&#xff08;Stack Spoofing&#xff09;的作用。簡單來說&#xff0c;棧欺騙技術的核心作用是隱藏程序&#xff08;尤其是惡意軟件或安全工具&#xff09;的真實調用鏈&#xff0c;使其逃避基于棧回溯&#xff08;Stack Walk…

Nano-banana 模型對接教程:最懂創作者的 AI 模型,比GPT-4o還強!

Nano-banana 模型對接教程&#xff08;含 BaseURL&#xff09; Nano Banana 是谷歌推出的革命性 AI 圖像編輯模型&#xff0c;代表了從"AI繪畫工具"到"AI創意伙伴"的范式轉移。它不再是被動執行指令&#xff0c;而是能深刻理解已有圖像的上下文、光影、物…

CEEMDAN-PSO-CNN-GRU 鋰電池健康狀態預測matlab

代碼說明 這個實現包含以下主要組成部分: 數據準備:加載并預處理鋰電池容量數據,劃分訓練集和測試集 CEEMDAN分解:將原始信號分解為多個本征模態函數(IMF)和一個殘差項 PSO優化:使用粒子群算法優化CNN-GRU網絡的超參數 CNN-GRU模型:構建并訓練卷積神經網絡與門控循環…

MySQL 主從讀寫分離架構

我們首先來詳細、清晰地講解 MySQL 主從讀寫分離架構&#xff0c;然后逐一解答你提出的以及補充的高頻面試問題。第一部分&#xff1a;MySQL 主從讀寫分離架構詳解1. 什么是主從復制與讀寫分離&#xff1f;你可以把它想象成一個 “團隊作戰” 的模式。主數據庫 (Master)&#x…

HTML 中的 CSS 使用說明

CSS 使用說明 1. CSS 概述 CSS (Cascading Style Sheets) 是一種用于描述 HTML 或 XML&#xff08;包括如 SVG、MathML 等 XML 方言&#xff09;文檔呈現的樣式表語言。CSS 描述了元素應該如何在屏幕、紙張或其他媒體上顯示。 2. CSS 的基本語法 CSS 規則由兩個主要部分組成…

gitlab推送失敗,內存不足的處理

git提交時報錯&#xff1a; 2025-09-03 20:03:32.583 [info] > git push origin master:master [4866ms]2025-09-03 20:03:32.583 [info] fatal: Out of memory, malloc failed (tried to allocate 1048576000 bytes)看了下服務器內存&#xff0c;空余的只有幾百M了。 用hto…

【FastDDS】Discovery ( 05-Discovery Server Settings)

發現服務器設置 這種機制基于客戶端-服務器發現模式,即元流量(域參與者之間用于識別彼此的消息交換)由一個或多個服務器域參與者管理(左圖),而在簡單發現(右圖)中,元流量通過IP多播協議等消息廣播機制進行交換。有一款發現服務器工具可簡化發現服務器的設置和測試。 …

Xilinx ZYNQ 開發環境中搭建Qt環境

在 Xilinx ZYNQ 開發環境中搭建 Qt 環境,意味著你要開發運行在 ZYNQ 嵌入式 Linux 系統上的 GUI 應用程序。這比在 PC 上搭建 Qt 要復雜一些,因為它涉及交叉編譯:在你的 PC(主機)上編譯出能在 ZYNQ 芯片(目標機)的 ARM Cortex-A9 核心上運行的程序。 整個過程可以分為以…

【數學建模】用代碼搞定無人機煙幕:怎么擋導彈最久?

前言&#xff1a;歡迎各位光臨本博客&#xff0c;這里小編帶你直接手撕**&#xff0c;文章并不復雜&#xff0c;愿諸君耐其心性&#xff0c;忘卻雜塵&#xff0c;道有所長&#xff01;&#xff01;&#xff01;&#xff01; **&#x1f525;個人主頁&#xff1a;IF’Maxue-CSDN…

linux Kbuild詳解關于fixdep、Q、quiet、escsq

linux Kbuild詳解關于if_changed_rule的any-prereq和arg-check原理及info調試關于fixdep沒有展開&#xff0c;這里說下。 文章目錄1. escsq2. Q、quiet2. 1 make V(0、1、2&#xff09;2. 2 make V(0、1)來控制Q、quiet3. fixdep3. 1 fixdep是什么3. 2 fixdep為什么3.2.1 .conf…

notepad++ 正則表達式

在 Notepad 中&#xff0c;正則表達式&#xff08;Regular Expressions, Regex&#xff09; 是一個強大的搜索和替換工具&#xff0c;可以高效地處理文本。以下是 Notepad 正則表達式 的指南&#xff1a;1. 如何在 Notepad 中使用正則表達式打開搜索窗口&#xff1a;快捷鍵 Ctr…

MySQL Cluster核心優缺點

MySQL Cluster 是 MySQL 官方提供的 分布式、內存優先、高可用 的數據庫解決方案&#xff08;基于 NDB 存儲引擎&#xff09;。它采用 Share-Nothing 架構&#xff0c;數據自動分片&#xff08;Sharding&#xff09;并分布在多個節點上&#xff0c;適用于需要極高可用性和實時性…

訓練+評估流程

訓練評估流程1、要求2、訓練評估&#xff08;PyTorch TensorBoard &#xff09;完整代碼&#xff08;單文件示例&#xff09;運行方法功能對應表3、pytorch自定義評估要繼承哪個類&#xff1f;4、HF Trainer和SB35、 匯總1. PyTorch Lightning TensorBoard ModelCheckpoint …

【開題答辯全過程】以 基于Android的點餐系統為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

【音視頻】Http-FLV 介紹

一、Http-FLV 原理 HTTP-FLV 是基于 HTTP 協議的 FLV&#xff08;Flash Video&#xff09;流媒體傳輸方式。它使用 HTTP 協議而不是傳統的 RTMP 協議來傳輸 FLV 格式的視頻流。HTTP-FLV 在 Web 視頻直播場景中得到了廣泛應用&#xff0c;尤其是在不支持或不希望使用 RTMP 協議的…

uniapp vue頁面傳參到webview.nvue頁面的html或者另一vue中

在app內部使用 uni.$emit(collectiones, { data: gx });傳到webview.nvue頁面 在webview.nvue頁面接受 uni.$on(collectiones, (data) > {console.log(接收到的數據:, data.data);});使用evalJS方法 nvue webview通信示例 這塊使用receiveMessageFromNvue方法這樣傳入的 u…

美團大模型“龍貓”登場,能否重塑本地生活新戰局?

美團大模型“龍貓”登場&#xff0c;能否重塑本地生活新戰局&#xff1f; 美團大模型登場&#xff1a;行業投下重磅炸彈 在大模型技術迅猛發展的當下&#xff0c;每一次新模型的發布都如投入湖面的石子&#xff0c;激起層層漣漪。美團推出的龍貓大模型 LongCat-Flash&#xff0…