day16|二叉樹的屬性

在這里插入圖片描述
相關題目
● 104.二叉樹的最大深度 559.n叉樹的最大深度
● 111.二叉樹的最小深度
● 222.完全二叉樹的節點個數

二叉樹的深度與高度

在這里插入圖片描述
如圖,
二叉樹的深度表示:任意一個葉子節點到根節點的距離,是從上往下計數的,因此使用前序遍歷得到任意一個葉子節點的深度
二叉樹的高度表示:根節點到葉子節點的距離,是從下往上計數的,因此使用后序遍歷得到跟根節點到葉子節點的高度
而二叉樹的最大深度即就是根節點的高度(慢慢品),我的理解:二叉樹的高度表示根節點到最后一層葉子節點的距離,剛好等于二叉樹的最大深度,所以卡哥才這樣總結的

二叉樹的最大深度

由于根節點的高度就是這棵二叉樹的最大深度,因此我們使用后序遍歷求解
遞歸實現:遞歸三部曲

  1. 確定入參:二叉樹的根節點
  2. 結束條件:遍歷節點為null時停止
  3. 單次循環過程:輸出左子樹的高度和右子樹的高度,取最大值
    實現過程:
public int maxDepth(Node root) {if(root == null){return 0;}int deep = 0;for (Node chrild:root.children) {int curDeep = maxDepth(chrild);deep = Math.max(deep,curDeep);}return deep+1;}

n叉樹的最大深度

實現過程:

 public int maxDepth(Node root) {if(root == null){return 0;}int deep = 0;for (Node chrild:root.children) {int curDeep = maxDepth(chrild);deep = Math.max(deep,curDeep);}return deep+1;}

二叉樹的最小深度

這個玩意不是很好理解
得看視頻回顧回顧:
先上代碼

public int minDepth(TreeNode root) {//后序,求高度if (root == null) {return 0;}int leftDeep = minDepth(root.left);int rightDeep = minDepth(root.right);if(root.left == null && root.right!=null){return rightDeep+1;}if(root.left != null && root.right==null){return leftDeep+1;}return Math.min(leftDeep,rightDeep)+1;}

滿二叉樹的應用

完全二叉樹的節點個數

見下篇文章講解

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

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

相關文章

2024年甘肅特崗教師招聘報名流程,速速查收哦!

2024年甘肅特崗教師招聘報名流程,速速查收哦!

python-雞兔同籠問題:已知雞和兔的總頭數與總腳數。求籠中雞和兔各幾只?

【問題描述】典型的雞兔同籠問題。 【輸入形式】輸入總頭數和總腳數兩個實數:h,f 【輸出形式】籠中雞和兔的個數:x,y 【樣例輸入】16 40 【樣例輸出】雞12只,兔4只 【樣例說明】輸入輸出必須保證格式正確。…

AI大模型探索之路-訓練篇25:ChatGLM3微調實戰-基于LLaMA-Factory微調改造企業級知識庫

系列篇章💥 AI大模型探索之路-訓練篇1:大語言模型微調基礎認知 AI大模型探索之路-訓練篇2:大語言模型預訓練基礎認知 AI大模型探索之路-訓練篇3:大語言模型全景解讀 AI大模型探索之路-訓練篇4:大語言模型訓練數據集概…

CS西電高悅計網課設——校園網設計

校園網設計 一,需求分析 所有主機可以訪問外網 主機可以通過域名訪問Web服務器 為網絡配置靜態或者動態路由 圖書館主機通過DHCP自動獲取IP參數 為辦公樓劃分VLAN 為所有設備分配合適的IP地址和子網掩碼,IP地址的第二個字節使用學號的后兩位。 二…

ESP32 實現獲取天氣情況

按照小安派AiPi-Eyes天氣站思路,在ESP32 S3上實現獲取天氣情況。 一、在ESP32 S3實現 1、main.c 建立2個TASK void app_main(void) {//lvgl初始化xTaskCreate(guiTask, "guiTask", 1024 * 6, NULL, 5, NULL);//wifi初始化、socket、json處理taskcustom_…

ES6之數值的擴展

1. 數值的擴展 1.1. 二進制和八進制字面量表示:1.2. 數值判斷方法: 1.2.1. Number.isFinite() 檢查一個值是否為有限的數值。1.2.2. Number.isNaN() 更準確地檢測NaN值。1.2.3. 傳統的全局方法 isFinite() 和 isNaN() 的區別 1.3. 數值轉換方法:1.4. 整數檢查與精度: 1.4.1. Nu…

防火墻技術基礎篇:解析防火墻的網絡隔離機制

防火墻技術基礎篇:解析防火墻的網絡隔離機制 網絡安全在現代社會中扮演著重要的角色,保護網絡系統、用戶和數據免受未經授權的訪問、破壞和竊取。個人、企業和國家都需要加強網絡安全意識,采取有效措施保護自身的網絡安全。隨著網絡攻擊手段…

【QT八股文】系列之篇章2 | QT的信號與槽機制及通訊流程

【QT八股文】系列之篇章2 | QT的信號與槽機制及通訊流程 前言2. 信號與槽信號與槽機制介紹/本質/原理,什么是Qt信號與槽機制?如何在Qt中使用?信號與槽機制原理,解析流程Qt信號槽的調用流程信號與槽機制的優缺點信號與槽機制需要注…

深入分析 Android Activity (三)

深入分析 Android Activity (三) 1. Activity 的配置變化處理 當設備配置(如屏幕方向、語言、屏幕大小等)發生變化時,默認情況下,Android 會銷毀并重新創建當前的 Activity。這種行為確保了新配置能夠正確應用,但在某…

HTML5 性能優化和計算機硬件使用

目錄 啟用硬件加速圖像與媒體優化資源加載與緩存CSS與布局優化JavaScript性能優化瀏覽器兼容性與特性檢測啟用硬件加速 Canvas繪圖 <canvas> 元素支持硬件加速,可以顯著提升圖形繪制和動畫的性能。確保在支持的瀏覽器中啟用硬件加速,如使用translate3d(0, 0, 0) hack…

解鎖Android高效數據傳輸的秘鑰 - Parcelable剖析

作為Android開發者&#xff0c;我們經常需要在不同的組件(Activity、Service等)之間傳輸數據。這里的"傳輸"往往不僅僅是簡單的數據復制&#xff0c;還可能涉及跨進程的內存復制操作。當傳輸的數據量較大時&#xff0c;這種操作可能會帶來嚴重的性能問題。而Android系…

web自動化之PO模式

PO模式 1、為什么需要PO思想&#xff1f; 首先我們觀察和思考一下&#xff0c;目前我們寫的作業腳本的問題&#xff1a; 元素定位和操作動 作寫到一起了&#xff0c;這就就會用導致一個問題&#xff1a; UI的頁面元素比較容易變化的&#xff0c;所以元素定位和腳本操作寫到一…

如何將照片從 iPhone 傳輸到閃存驅動器【無質量損壞】

概括 人們喜歡用 iPhone 拍照&#xff0c;因為照片通常都很漂亮&#xff0c;這都要歸功于 iPhone 令人驚嘆的技術。但照片更新后會占用更多空間&#xff0c;并且您可能會開始收到沒有存儲空間的通知。因此&#xff0c;您可以將照片傳輸到 USB 驅動器&#xff0c;然后從 iPhone…

Spring Boot構建mvc項目

好的,以下是一個簡單的Java MVC(Model-View-Controller)項目示例,使用Spring Boot框架和MySQL數據庫。這個項目包括基本的CRUD操作。 項目結構 src/ └── main/├── java/│ └── com/│ └── example/│ └── demo/│ ├──…

springboot-阿里羚羊 服務端埋點

官方文檔 集成Java SDK 手動引入jar包「quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar」 <dependency><groupId>com.alibaba.lingyang</groupId><artifactId>quickaplus-log-collector-java-sdk</artifactId><version>1.0.1&l…

應用案例 | 如何實時監測和管理冷鏈倉庫溫濕度?

一、項目背景 冷鏈倉庫溫濕度管理的重要性在于確保倉庫內產品的質量和安全。通過遵循相關法規和標準&#xff0c;滿足客戶對產品質量的需求&#xff0c;同時實施有效的溫濕度管理措施&#xff0c;可以降低成本并提高倉庫作業效率。該項目的實施旨在幫助客戶保證產品的新鮮度&a…

Java - AbstractQueuedSynchronizer

AQS簡介 AQS全稱AbstractQueuedSynchronizer&#xff0c;抽象隊列同步器&#xff0c;是一個實現同步組件的基礎框架。AQS使用一個int類型的成員變量state維護同步狀態&#xff0c;通過內置的同步隊列&#xff08;CLH鎖、FIFO&#xff09;完成線程的排隊工作&#xff0c;底層主…

echarts 散點圖修改散點圖中圖形形狀顏色大小

話不多說&#xff0c;直接上代碼 let option {color:[xxx, xxx, xxx, xxx], //直接設置color可修改圖形顏色title: {text: 散點圖圖形,},tooltip: {trigger: axis,axisPointer: {type: cross}},legend: {top: 2,right:2,itemWidth: 10,itemHeight: 10,textStyle:{fontSize:14}…

shell腳本條件語句和循環語句

文章目錄 一、條件語句測試比較整數數值字符串比較邏輯運算雙中括號&#xff08; &#xff09;{ }if語句結構case語句 二、循環語句基礎知識for循環whileuntil雙重循環及跳出循環 一、條件語句 測試 條件測試&#xff1a;判斷某需求是否滿足&#xff0c;需要由測試機制來實現…

視頻分類——C3D使用

整體比較分散&#xff0c;可能很多源碼都需要修改&#xff0c;需要有耐心。 一、數據準備 PS 調研后&#xff0c;上手容易代碼比較簡潔的是&#xff1a;https://github.com/Niki173/C3D/tree/main 因為源碼很多參數都寫死到了源碼中&#xff0c;沒有解耦&#xff0c;并且默…