leetcode543-二叉樹的直徑

leetcode 543
在這里插入圖片描述

思路

  1. 路徑長度計算:任意兩個節點之間的路徑長度,等于它們的最低公共祖先到它們各自的深度之和
  2. 遞歸遍歷:通過后序遍歷(左右根)計算每個節點的左右子樹深度,并更新全局最大直徑
  3. 深度與直徑的關系:節點的深度是其左右子樹深度的最大值加 1,而直徑是左右子樹深度之和

實現

const diameterOfBinaryTree = function (root) {let maxDepth = 0 // 全局最大直徑// 遞歸計算每個節點的深度,并更新最大直徑const deep = (root) => {if (!root) return 0; // 空節點深度為0// 計算左子樹深度const leftLen = deep(root.left);// 計算右子樹深度const rightLen = deep(root.right);// 當前節點的直徑(經過該節點的最長路徑)const curLen = leftLen + rightLen;// 更新全局最大直徑maxDepth = Math.max(curLen, maxDepth);// 返回當前節點的深度(用于父節點計算)return Math.max(leftLen, rightLen) + 1}deep(root)return maxDepth;
}

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

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

相關文章

詳解main的參數并實現讀取文件

在 C 語言中,main函數的參數argc和argv用于接收命令行傳入的參數 main 函數的兩個參數 int main(int argc, char* argv[]) 假設顧客通過手機 APP 點餐,訂單信息會被傳遞給餐廳的處理系統(也就是你的程序)。 訂單信息結構 argc…

c++IO類

概述 c不直接處理輸入輸出,而是通過定義在標準類庫中的類來處理IO。這些類支持從設備讀取數據,向設備寫入數據的IO操作,設備可以是文件、控制臺窗口等。還可以從內存IO。 IO類 iostream: istream,wistreamostream,wo…

springboot的后端處理HTML的頁面請求

下面是一個完整的 Spring Boot 后端示例&#xff0c;用于接收 <form> 提交的文件上傳請求&#xff08;/article/uploadLifeImage 接口&#xff09;&#xff0c;并將上傳的文件保存到本地目錄。 ? 一、項目結構 upload-demo/ ├── src/ │ └── main/ │ ├…

深入探究 Go 語言中使用 SQLite 數據庫

引言 在軟件開發中&#xff0c;數據庫是管理和存儲數據的關鍵組件。SQLite 作為一款輕量級的嵌入式數據庫&#xff0c;因其零配置、高性能和易于集成等特性&#xff0c;成為眾多小型項目和嵌入式系統的理想選擇。而 Go 語言以其高效、簡潔的特點&#xff0c;為操作 SQLite 數據…

Portable Computer Power Adapter

Portable Computer Power Adapter 筆記本電源適配器&#xff0c;將220伏特的交流電轉化直流電 現在的適配器真的體積之大&#xff0c;讓我無法理解&#xff0c;本來便攜計算機為了方便減少體積重量&#xff0c;現在都倒反天罡了。讓我無法理解設計師是怎么干出來的。這玩意有2…

Uniapp 網絡請求封裝專題

目錄 一、前言 二、uniapp官方文檔 三、舉例演示 3.1 使用說明 3.2 Content-Type 3.2.1 ??基本概念 ??3.2.2 核心作用 3.2.3 常見 Content-Type 類型及使用場景 1&#xff09;文本類 a&#xff09;text/plain???? b&#xff09;text/html?? 2&#xf…

2025年滲透測試面試題總結-2025年HW(護網面試) 07(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 2025年HW(護網面試) 07 一、OWASP Top 10 2023核心漏洞 二、XSS竊取Cookie全流程 三、滲透測試五階段模型…

Seata分布式事務解決框架

Seata&#xff08;Simple Extensible Autonomous Transaction Architecture&#xff09;是一個開源的分布式事務解決方案&#xff0c;旨在幫助開發者更容易地在微服務架構中解決分布式事務問題。 你可以把它理解為一個工具箱&#xff0c;專門用來處理微服務之間操作的一致性。…

舊物回收小程序開發:開啟綠色生活新方式

在環保理念日益深入人心的今天&#xff0c;每一件舊物都承載著資源再生的無限可能。我們精心打造的舊物回收小程序&#xff0c;宛如一把神奇的鑰匙&#xff0c;為你開啟綠色生活新方式&#xff01; 想象一下&#xff0c;家中堆積如山的舊衣物、閑置的電子產品、廢棄的書籍雜志…

STM32 串口通信②:藍牙模塊HC-05控制單片機

一 前言 上一篇我們已經成功實現單片機和電腦的連接&#xff0c;接下來&#xff0c;我們學習一個有趣的板塊&#xff0c;HC-05藍牙模塊&#xff0c;這個藍牙模塊&#xff0c;我們就要建立手機和單片機的通訊啦&#xff0c;還是比較有趣的一個過程&#xff0c;大家可以跟著多操作…

【Verilog】Verilator的TestBench該用C++還是SystemC

Verilator的Testbench&#xff08;測試平臺&#xff09;主要使用 C 或 SystemC 來編寫。這是由Verilator的工作原理決定的&#xff1a;它將你的Verilog/SystemVerilog設計轉換成一個C類&#xff0c;因此你需要一個C環境來實例化和驅動這個類。 下面詳細說明這兩種方式以及如何…

71-Oracle Undo與Flashback管理(Guarantee設置)深度解析

小伙伴們有沒有在操作undo表空間、Flashback管理&#xff0c;時間保留設置&#xff0c;總有些配置需要提前預置好&#xff0c;否則閃回查詢和表的時候出現報錯。 需短期恢復&#xff08;秒級~小時&#xff09;直接上UNDO_RETENTION同時啟用RETENTION GUARANTEE&#xff0c;Und…

單片機——浮點數轉換4位數碼管顯示

浮點數轉換4位數碼管顯示 static char buffer[5]; int DecimalPlace 0; #define HideChar h void DisplayFloatOn4LED(float value) {long integer roundf(value );if (integer > 9999) //4位{integer 9999;snprintf(buffer, sizeof(buffer), "%4ld", integer…

金融行業B端系統布局實戰:風險管控與數據可視化的定制方案

摘要 在金融行業&#xff0c;一次小小的數據泄露可能引發千萬級資金損失&#xff0c;一次錯誤的風險評估或許讓企業陷入危機。傳統 B 端系統布局在應對復雜多變的金融業務時&#xff0c;常出現風險預警滯后、數據雜亂無章的情況&#xff0c;讓從業者如履薄冰。如何才能在瞬息萬…

融合LSTM與自注意力機制的多步光伏功率預測新模型解析

這篇論文《Improved multistep ahead photovoltaic power prediction model based on LSTM and self-attention with weather forecast data》&#xff08;2024, Applied Energy&#xff09;聚焦在 多步光伏功率預測 中&#xff0c;如何結合 LSTM 與自注意力機制&#xff08;se…

Blazor-內置輸入組件

封裝的輸入組件 InputCheckbox&#xff1a;表示復選框。InputDate&#xff1a;表示類型為 date 的日期選擇框。InputFile&#xff1a;表示文件上傳。InputNumber&#xff1a;表示數字框。InputRadio&#xff1a;表示單選按鈕。InputRadioGroup&#xff1a;表示單選按鈕組。Inpu…

Qt源碼分析: QChildEvent

本文記錄QChildEvent事件相關代碼分析。 注1&#xff1a;限于筆者研究水平&#xff0c;難免有表述不當&#xff0c;歡迎批評指正。 注2&#xff1a;博文會不定期更新&#xff0c;敬請關注。 一、QChildEvent的發送 分析QObject::setParent代碼&#xff0c;當修改父對象時&…

《Whisper :說明書 》

[論文] [模型卡] [Colab 示例] Whisper 是一種通用的語音識別模型。它基于各種音頻的大型數據集進行訓練&#xff0c;也是一種多任務模型&#xff0c;可以執行多語言語音識別、語音翻譯和語言識別。 方法 Transformer 序列到序列模型針對各種語音處理任務進行訓練&#xff0c;…

回溯----8.N皇后

題目鏈接 /** 將n個棋子放在n*n的棋盤上,不同列,不同行,不同斜線 大致執行流程: 首先選取第一行第一格放置第一個棋子,再從第二行第一個位置開始選取合法的位置(不同行不同列不同斜線)放置棋子,重復上述流程迭代行數, 直到放置n個棋子。 若放置途中出現無合法位置的情況,回溯將…

微機電子拉伸試驗機

對于不同材料的試樣&#xff0c;由于其化學成分及組織的不同&#xff0c;在拉伸過程中會體現 出不同的物理現象及力學性質。西安力創&#xff08;LETRY&#xff09;公司專業制造WDL/WDW系列微機控制電子萬能試驗機&#xff0c;主要適用于金屬板材、棒材、管材、金屬絲、金屬箔、…