二叉樹-104.二叉樹的最大深度-力扣(LeetCode)

一、題目解析

這里需要注意根節點的深度是1,也就是說計算深度的是從1開始計算的

?

?二、算法原理

解法1:廣度搜索,使用隊列

解法2:深度搜索,使用遞歸

當計算出左子樹的深度l,與右子樹的深度r時,總的深度為max(l,r)+1

當root == nullptr時,返回0,此時該節點遞歸返回的值是1,然后依次返回

先遞歸我們的左樹,?此時根節點為B,B在遞歸,左樹為空,右樹也為空,此時B樹的深度為max(0,0)+1=1,然后B樹遞歸完,繼續遞歸右樹C,C為根節點繼續遞歸,C的左樹D繼續遞歸,D的左右子樹為空,D遞歸結果為1返回,C的右樹為空返回0,此時C樹的深度為max(1,0)+1=2,C的深度為2,A的深度為B,C子樹的最大值加1,所以最終遞歸結果為3。

在遞歸時,需要我們自己去畫遞歸展開圖去體會遞歸的過程,這里受限于篇幅原因,將遞歸展開圖壓縮了。

三、代碼示例

class Solution {
public:int maxDepth(TreeNode* root) {if(root == nullptr) return 0;return max(maxDepth(root->left),maxDepth(root->right))+1;   }
};

代碼很簡短,但重要的是了解遞歸展開的邏輯,明白為啥這樣能得出正確答案。

?

?

看到最后,如果對您有所幫助,還請點贊、收藏和關注,點點關注不迷路,我們下期再見!?

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

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

相關文章

Calendar類日期設置進位問題

背景 報表需求,需要傳遞每組數據中最小的日期,后臺根據傳遞的最小日期,向前取參數傳遞的月份的上個月為結束時間的近五個月數據 例:參數傳:2025/02,則需返回2025/01, 2024/12, 2024/11, 2024/10, 2024/09這五個年月數據…

編程筆記---問題小計

編程筆記 qml ProgressBar 為什么valuemodel.progress / 100 在QML中,ProgressBar的value屬性用于表示進度條的當前進度值,其范圍通常為0到1(或0%到100%)。當使用model.progress / 100來設置value時,這樣做的原因是為…

【STL】函數對象+常用算法

文章目錄 STL- 函數對象函數對象函數對象使用 謂詞一元謂詞二元謂詞內建函數對象算術仿函數關系仿函數 STL- 常用算法常用遍歷算法for_eachtransform 常用查找算法findfind_ifadjacent_findbinary_searchcountcount_if 常用排序算法sortrandom_shufflemergereverse 常用拷貝和替…

[JVM] JVM內存調優

🌸個人主頁:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵?熱門專欄: 🧊 Java基本語法(97平均質量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection與…

Spring Boot 從Socket 到Netty網絡編程(下):Netty基本開發與改進【心跳、粘包與拆包、閑置連接】

上一篇:《Spring Boot 從Socket 到Netty網絡編程(上):SOCKET 基本開發(BIO)與改進(NIO)》 前言 前文中我們簡單介紹了基于Socket的BIO(阻塞式)與NIO(非阻塞式&#xff0…

python編寫賽博朋克風格天氣查詢程序

工具介紹 這個天氣查詢工具是一個基于 Python 的桌面應用程序,使用了tkinter庫來創建圖形用戶界面(GUI),并通過requests庫調用 Open - Meteo API 獲取天氣數據。它具有賽博朋克風格的界面設計,提供了當前天氣信息、15 天天氣預報以及詳細的天氣數據展示,同時還包含溫度趨…

從二叉樹到 STL:揭開 set 容器的本質與用法

前言: 上次介紹完二叉搜索樹后,更新中斷了一段時間,先向大家致歉。最近學習狀態有些起伏,但我正在努力調整,相信很快會恢復節奏。今天我們繼續深入探討——關聯容器,它在算法和工程中都非常常見和重要。 1…

uv管理spaCy語言模型

本文記錄如何在使用uv管理python項目dependencies時,把spaCy的模型也納入其中. spaCy 一、spaCy簡介 spaCy是一個開源的自然語言處理(NLP)庫,它主要用于處理文本數據。它支持多種語言,包括英語、中文等。它是由Expl…

python執行測試用例,allure報亂碼且未成功生成報告

allure執行測試用例時顯示亂碼:‘allure’ �����?����?���??���?�&am…

Rust 學習筆記:Box<T>

Rust 學習筆記&#xff1a;Box Rust 學習筆記&#xff1a;Box<T\>Box\<T> 簡介使用 Box\<T\> 在堆上存儲數據啟用帶有 box 的遞歸類型關于 cons 列表的介紹計算非遞歸類型的大小使用 Box\<T\> 獲取大小已知的遞歸類型 Rust 學習筆記&#xff1a;Box<…

英語寫作中“不少于(小于)”no less than替代no fewer than的用法

no less than 1 liter of water&#xff0c;no fewer than 100 people 是我們的傳統用法。現代英語有一個有趣的現象&#xff0c;就是less 代替fewer 形容可數名詞&#xff0c;例如&#xff1a; Do you have 10 courses each week? No. We have less. 顯然按嚴格語法應該是…

競品分析六大步驟

一、引言 在產品打磨、市場推廣或戰略定位過程中&#xff0c;我們常常會面臨一個關鍵任務——競品分析。一份系統的競品分析不僅能幫助我們知己知彼&#xff0c;優化產品策略&#xff0c;更能成為決策層制定方向的重要依據。競品分析到底該怎么做&#xff1f;今天我將結合自己的…

【Java Web】9.Maven高級

&#x1f4d8;博客主頁&#xff1a;程序員葵安 &#x1faf6;感謝大家點贊&#x1f44d;&#x1f3fb;收藏?評論?&#x1f3fb; 文章目錄 一、分模塊設計與開發 1.1 介紹 1.2 實踐 二、繼承與聚合 2.1 繼承 繼承關系 版本鎖定 2.2 聚合 2.3 繼承與聚合對比 三、…

MySQL 全量、增量備份與恢復

一.MySQL 數據庫備份概述 備份的主要目的是災難恢復&#xff0c;備份還可以測試應用、回滾數據修改、查詢歷史數據、審計等。之前已經學習過如何安裝 MySQL&#xff0c;本小節將從生產運維的角度了解備份恢復的分類與方法。 1 數據備份的重要性 在企業中數據的價值至關…

第六個微信小程序:教師工具集

源于工作需要&#xff0c;下面開始。 安裝及使用 | Taro 文檔 vscode 代碼管理 git 輔助 開發技術如上&#xff1a; 1.開始創建模板 taro4.1.1 $ taro init teachers-tools 2.用vsocde開始吧。 選擇 第二個文件夾找一。 (base) PS D:\react\teachers-tools> pnpm…

Linux 里 su 和 sudo 命令這兩個有什么不一樣?

《小菜狗 Linux 操作系統快速入門筆記》目錄&#xff1a; 《小菜狗 Linux 操作系統快速入門筆記》&#xff08;01.0&#xff09;文章導航目錄【實時更新】 Linux 是一個多用戶的操作系統。在 Linux 中&#xff0c;理論上來說&#xff0c;我們可以創建無數個用戶&#xff0c;但…

Elastic 獲得 AWS 教育 ISV 合作伙伴資質,進一步增強教育解決方案產品組合

作者&#xff1a;來自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通過搜索 AI 和云創新推動教育領域的數字化轉型。 我們非常高興地宣布&#xff0c;Elastic 已獲得 AWS 教育 ISV 合作伙伴資質。這一重要認證表明&#xff0c;Elastic 作為 …

服務器被攻擊了怎么辦

可以上一個高防IP或者AI云防護都是可以的。&#xff08;有效防御CC、APl接口、http、tcp、WEB應用掃描/爬蟲、SYN、WAF、DDOS、UDP、入侵、滲透、SQL注入、XSS跨站腳本攻擊、遠程惡意代碼執行、session fixation、Webshell攻擊、惡意請求&#xff0c;惡意掃描、暴力破解、CSRF等…

【學習筆記】Circuit Tracing: Revealing Computational Graphs in Language Models

Circuit Tracing: Revealing Computational Graphs in Language Models 替代模型(Replacement Model)&#xff1a;用更多的可解釋的特征來替代transformer模型的神經元。 歸因圖(Attribution Graph)&#xff1a;展示特征之間的相互影響&#xff0c;能夠追蹤模型生成輸出時所采用…

靈活控制,modbus tcp轉ethernetip的 多功能水處理方案

油田自動化和先進的油氣行業軟件為油氣公司帶來了諸多益處。其中包括&#xff1a; 1.自動化可以消除多余的步驟、減少人為錯誤并降低運行設備所需的能量&#xff0c;從而降低成本。 2.油天然氣行業不斷追求高水平生產。自動化可以更輕松地減少計劃外停機時間&#xff0c;從而…