LeetCode:513、找樹左下角的值

//遞歸法
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int result;public int maxdepth=-1;//初始化為-1是因為當只有一個節點也就是只有根節點時,傳來的depth=0,0>-1,才會返回正確的左下角的值public void getresult(TreeNode root,int depth){if(root==null)return;if(root.left==null&&root.right==null){if(depth>maxdepth){maxdepth=depth;result=root.val;}}if(root.left!=null){depth++;getresult(root.left,depth);depth--;}if(root.right!=null){depth++;getresult(root.right,depth);depth--;}}public int findBottomLeftValue(TreeNode root) {getresult(root,0);return result;}
}
//迭代法
class Solution {public int findBottomLeftValue(TreeNode root) {Queue<TreeNode> que=new LinkedList<>();int res=0;que.offer(root);while(!que.isEmpty()){int size=que.size();for(int i=0;i<size;i++){TreeNode tmpnode=que.poll();if(i==0)res=tmpnode.val;//保存二叉樹最底邊第一個元素if(tmpnode.left!=null)que.offer(tmpnode.left);if(tmpnode.right!=null)que.offer(tmpnode.right);}}return res;}
}

513. 找樹左下角的值 - 力扣(LeetCode)513. 找樹左下角的值 - 給定一個二叉樹的 根節點 root,請找出該二叉樹的?最底層?最左邊?節點的值。假設二叉樹中至少有一個節點。?示例 1:[https://assets.leetcode.com/uploads/2020/12/14/tree1.jpg]輸入: root = [2,1,3]輸出: 1示例 2:[https://assets.leetcode.com/uploads/2020/12/14/tree2.jpg]輸入: [1,2,3,4,null,5,6,null,null,7]輸出: 7?提示: * 二叉樹的節點個數的范圍是 [1,104] * -231?<= Node.val <= 231?- 1?https://leetcode.cn/problems/find-bottom-left-tree-value

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

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

相關文章

采用均線策略來跟蹤和投資基金

策略來源#睿思量化#小程序 截圖來源#睿思量化#小程序 在基金投資中&#xff0c;趨勢跟蹤策略是一種備受關注的交易方法。本文將基于兩張關于廣發電子信息傳媒股票 A&#xff08;代碼&#xff1a;005310&#xff09;的圖片資料&#xff0c;詳細闡述這一策略的應用與效果。 從第…

leetcode刷題---二分查找

力扣題目鏈接 二分查找算法使用前提&#xff1a;有序數組&#xff1b;數組內無重復元素 易錯點&#xff1a; 1.while循環的邊界條件&#xff1a;如到底是 while(left < right) 還是 while(left < right) 2.if條件后right&#xff0c;left的取值&#xff1a;到底是 right …

(leetcode) 力扣100 10.和為K的子數組(前綴和+哈希)

題目 給你一個整數數組 nums 和一個整數 k &#xff0c;請你統計并返回 該數組中和為 k 的子數組的個數 。 子數組是數組中元素的連續非空序列。 數據范圍 1 < nums.length < 2 * 104 -1000 < nums[i] < 1000 -107 < k < 107 樣例 示例 1&#xff1a; 輸…

遨游衛星電話與普通手機有什么區別?

在數字化浪潮席卷全球的今天&#xff0c;通信設備的角色早已超越傳統語音工具&#xff0c;成為連接物理世界與數字世界的核心樞紐。然而&#xff0c;當普通手機在都市叢林中游刃有余時&#xff0c;面對偏遠地區、危險作業場景的應急通信需求&#xff0c;其局限性便顯露無遺。遨…

在Linux中如何使用Kill(),向進程發送發送信號

kill()函數 #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); 函數參數和返回值含義如下: pid:參數 pid 為正數的情況下,用于指定接收此信號的進程 pid;除此之外,參數 pid 也可設置為 0 或-1 以及小于-1 等不同值,稍后給說明。 …

Java SpringMVC 和 MyBatis 整合關鍵配置詳解

目錄 一、數據源配置二、MyBatis 工廠配置三、Mapper 掃描配置四、SpringMVC 配置五、整合示例實體類Mapper 接口Mapper XML 文件Service 類控制器JSP 頁面六、總結在 Java Web 開發中,SpringMVC 和 MyBatis 是兩個常用框架。SpringMVC 負責 Web 層的請求處理和視圖渲染,MyBa…

基于javaweb的SpringBoot高校圖書館座位預約系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

零成本打造專屬AI圖像處理平臺:IOPaint本地部署與遠程訪問指南

文章目錄 前言1.什么是IOPaint&#xff1f;2.本地部署IOPaint3.IOPaint簡單實用4.公網遠程訪問本地IOPaint5.內網穿透工具安裝6.配置公網地址7.使用固定公網地址遠程訪問總結 前言 移動攝影的普及使得記錄生活變得輕而易舉&#xff0c;然而獲得一張高質量的照片往往需要付出不…

子串簡寫(JAVA)一維前綴和, 藍橋杯

這個題用前綴和&#xff0c;開兩個數組&#xff0c;一個存前n個字符數據的c1的數字個數&#xff0c;另一個前n個字符c2的數字個數&#xff0c;然后遍歷一次加起來&#xff0c;有一個測試點沒過去&#xff0c;把那個存最后數的換成long&#xff0c;應該是這題數據范圍給的不對&a…

基于javaweb的SpringBoot自習室預約系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

基于大模型預測的全面驚厥性癲癇持續狀態技術方案大綱

目錄 一、引言二、數據收集與預處理三、大模型構建與訓練四、術前評估與預測五、術中監測與決策支持六、術后護理與康復預測七、統計分析與模型評估八、技術驗證與實驗證據九、健康教育與患者指導十、結論與展望一、引言 研究背景與意義 全面驚厥性癲癇持續狀態(GCSE)的臨床危…

Flink實時統計任務CPU異常排查與解決方案

一、核心原因分析 ?資源配置不合理? ?CPU核數與并行度不匹配?:TaskManager的taskmanager.numberOfTaskSlots設置過高,導致單個節點負載過載(如32核節點設置2個slot被多個任務占用,總需求超過物理CPU核數)。?內存與CPU分配不均?:內存不足引發頻繁GC,間接導致CPU利…

深入剖析 Linux 進程的睡眠與喚醒機制

在 Linux 操作系統的核心運轉體系中&#xff0c;進程的睡眠與喚醒機制如同精密時鐘的齒輪&#xff0c;默默驅動著整個系統的高效運行。理解這一機制不僅是掌握 Linux 內核工作原理的關鍵&#xff0c;更是優化系統性能、排查進程阻塞問題的核心所在。本文將深入剖析 Linux 進程睡…

【操作系統期末速成】①操作系統概述

——————2025.5.14————— 操作系統主要考點&#xff1a;操作系統概述、進程管理、內存管理、文件系統、設備管理&#xff08;前三個重點&#xff0c;第二三個是重中之重&#xff09; 操作系統概念&#xff08;OS&#xff09;&#xff1a;&#xff08;本質上是一個軟件…

【軟件工程】基于頻譜的缺陷定位

基于頻譜的缺陷定位&#xff08;Spectrum-Based Fault Localization, SBFL&#xff09;是一種通過分析程序執行覆蓋信息&#xff08;頻譜數據&#xff09;來定位代碼中缺陷的方法。其核心思想是&#xff1a;通過測試用例的執行結果&#xff08;成功/失敗&#xff09;和代碼覆蓋…

Spring Cloud:構建云原生微服務架構的最佳工具和實踐

&#x1f325;? 1. 引言 一、背景介紹&#xff1a;為什么需要微服務&#xff1f; 隨著互聯網技術的發展&#xff0c;企業級應用的功能日益復雜&#xff0c;傳統的單體架構&#xff08;Monolithic Architecture&#xff09;逐漸暴露出一系列問題&#xff1a; 項目龐大&#…

【Redis 進階】集群

思維導圖&#xff1a; 一、Redis集群概述 &#xff08;一&#xff09;廣義集群與狹義集群的定義 ??廣義集群??&#xff1a;指由多個機器組成的分布式系統&#xff0c;例如前面提到的主從模式和哨兵模式。??狹義集群??&#xff1a;Redis提供的集群模式&#xff0c;主要…

第二十八節:直方圖處理- 直方圖計算與繪制

直方圖是數字圖像處理的基石工具,在計算機視覺領域扮演著關鍵角色。通過本文,您將深入掌握使用OpenCV進行直方圖計算的底層原理,并學會多種專業的直方圖可視化方法。無論您是剛入門的新手還是希望提升技能的開發者,這里都有值得探索的進階技巧。 一、直方圖基礎理論 1.1 什…

傳奇游戲跟奇跡游戲的區別

前言 對傳奇和奇跡游戲背景感興趣的&#xff0c;可以去瀏覽以下相關博客&#xff1a; 傳奇與奇跡的發源 傳奇游戲跟奇跡游戲的區別 區別1&#xff1a;畫面 奇跡游戲畫面更為美觀&#xff08;圖1&#xff1a;奇跡游戲畫面&#xff09; 傳奇游戲畫面相對簡陋&#xff08;圖2&am…

佰力博科技準靜態d33測試的注意事項

準靜態d33測試是測量壓電材料縱向壓電應變常數的重要方法&#xff0c;其注意事項包括以下幾個方面&#xff1a; 選擇合適的測量設備 準靜態d33測試需要使用專用的壓電測試儀&#xff0c;如佰力博PEAI1000高精度壓電分析儀、準靜態d33測量儀或PCA1000壓電陶瓷綜合參數分析儀。這…