LeetCode hot100-49-N

236. 二叉樹的最近公共祖先
給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。百度百科中最近公共祖先的定義為:“對于有根樹 T 的兩個節點 p、q,最近公共祖先表示為一個節點 x,滿足 x 是 p、q 的祖先且 x 的深度盡可能大(一個節點也可以是它自己的祖先)。

有一種淡淡的死感,二叉樹遞歸反正是越刷越絕望,完完全全的門外漢背題。

官方答案也看不懂,而且寫得一般。
在看到一個好的解答,圖畫得很好,大概理解每一步是怎么返回了
https://zhuanlan.zhihu.com/p/269251274

但是他是寫的C/C++版本,我根據這個思路改成Java。大概是這樣的

class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if (root == null || root == p || root == q) {return root;}root.left = lowestCommonAncestor(root.left, p, q);root.right = lowestCommonAncestor(root.right, p, q);if (root.left != null && root.right != null) {return root;}return root.left == null ? root.right : root.left;}
}

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

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

相關文章

爬蟲學習--12.MySQL數據庫的基本操作(下)

MySQL查詢數據 MySQL 數據庫使用SQL SELECT語句來查詢數據。 語法:在MySQL數據庫中查詢數據通用的 SELECT 語法 SELECT 字段1,字段2,……,字段n FROM table_name [WHERE 條件] [LIMIT N] 查詢語句中你可以使用一個或者多個表&…

uni-app項目在微信開發者工具打開時報錯[ app.json 文件內容錯誤] app.json: 在項目根目錄未找到 app.json

uni-app項目在微信開發者工具打開時報錯[ app.json 文件內容錯誤] app.json: 在項目根目錄未找到 app.json 出現這個問題是因為打開的文件地址不對,解決這個問題首先我們要查看是否有unpackage文件夾,如果有,項目直接指向unpackage\dist\dev\…

vue3使用mitt.js進行各種組件間通信

我們在vue工程中,除開vue自帶的什么父子間,祖孫間通信,還有一個非常方便的通信方式,類似Vue2.x 使用 EventBus 進行組件通信,而 Vue3.x 推薦使用 mitt.js。可以實現各個組件間的通信 優點:首先它足夠小&…

【云原生】Kubeadm部署k8s

目錄 一、部署步驟 二、部署kubernetes 2.1、所有節點關閉防火墻 核心防護 iptables規則 swap交換 2.2、修改主機名并添加主機映射 2.3、調整內核參數 三、安裝Docker 3.1、所有節點安裝docker 3.2、所有接點添加鏡像加速器 3.3、開啟docker、并設置開機自啟、查看狀態…

ESP32學習筆記:WS2812B驅動

WS2812B是一款貼片RGB燈。由于采用了單總線通訊,所以需要特別關注下它的通訊時序。 調試細節: 本來以為會是一個比較簡單的調試,結果還是花了很長時間才調試完成。 首先是關于ESP32的納秒級延時確定,當時按照空指令始終調試不出來…

Linux中的計劃任務(crontab)詳解

🐇明明跟你說過:個人主頁 🏅個人專欄:《Linux :從菜鳥到飛鳥的逆襲》🏅 🔖行路有良友,便是天堂🔖 目錄 一、前言 1、Linux的起源與發展 2、什么是計劃任務&#xf…

超詳細的前后端實戰項目(Spring系列加上vue3)(一步步實現+源碼)前端篇(一)

最近想著一步步搭建一個前后端項目,將每一步詳細的做出來。(如果有不足或者建議,也希望大佬們指出哦) 前端初始化 1.根據vue腳手架創建vue項目 這里可以用很多方法創建vue項目,大家看著創建吧,只要能創建…

k8s 部署mqtt簡介

在Kubernetes(K8s)中部署MQTT(Message Queuing Telemetry Transport)服務通常涉及以下幾個步驟: 選擇MQTT Broker MQTT Broker是MQTT消息傳遞的中間件。流行的MQTT Broker包括Mosquitto, HiveMQ, EMQ X等。你需要選擇一…

機器學習面試問題總結 | 貝葉斯網絡

本文給大家帶來的百面算法工程師是機器學習中貝葉斯網路面試總結,文章內總結了常見的提問問題,旨在為廣大學子模擬出更貼合實際的面試問答場景。在這篇文章中,我們還將介紹一些常見的面試問題,并提供參考的回答及其理論基礎&#…

K8S Secret管理之SealedSecrets

1 關于K8S Secret 我們通常將應用程序使用的密碼、API密鑰保存在K8S Secret中,然后應用去引用。對于這些敏感信息,安全性是至關重要的,而傳統的存儲方式可能會導致密鑰在存儲、傳輸或使用過程中受到威脅,例如在git中明文存儲密碼…

FreeRTOS_事件組_學習筆記

事件組 原文鏈接 事件組是一個整數,其中的高8位留給內核,只能用其他位來表示時間 每一位代表一個事件,且每個時間的含義由程序員決定 1為發生,0為未發生 一個/多個任務或ISR都能讀寫這些位 可以等待某一位,也可以等待…

如何理解合約中的引用類型(3)——Mapping

映射(mapping) 聲明形式:mapping(key type > value type)keytype可以是除枚舉外的幾乎任何基本類型,包括bytes和string,不包括用戶自定義的復雜類型-合約,枚舉,結構,映射value t…

簡單美觀易上手的 Docker Compose 可視化管理器 Dockge

本文首發于只抄博客,歡迎點擊原文鏈接了解更多內容。 前言 Dockge 是 Uptime Kuma 作者的新作品,因此 UI 風格與 Uptime Kuma 基本一致,如果你正在使用 Uptime Kuma 的話,那么 Dockge 的 UI 設計應該也不會讓你失望。Dockge 主打…

智慧校園為高校帶來哪些價值

在21世紀的教育圖景中,"智慧"不再僅僅是一個科技名詞,它已成為衡量教育現代化水平的重要標志。智慧校園,這一融合了物聯網、大數據、云計算等先進技術的教育新形態,正逐步成為高校轉型升級的關鍵驅動力。本文將從多個維…

note-網絡是怎樣連接的2 協議棧和網卡

助記提要 協議棧的結構協議棧創建連接的實際過程協議棧發送數據包的2個判斷依據TCP確認數據收到的原理斷開連接的過程路由表和ARPMAC地址的分配MAC模塊的工作通過電信號讀取數據的原理網卡和協議棧接收包的過程ICMPUDP協議的適用場景 2章 用電信號傳輸TCP/IP數據 探索協議棧和…

BUUCTF靶場 [reverse]easyre、reverse1、reverse2

工具: DIE:下載:https://download.csdn.net/download/m0_73981089/89334360 IDA:下載:https://hex-rays.com/ida-free/ 新手小白勇闖逆向區!!! [reverse]easyre 首先查殼&#xf…

如何理解HTML語義化

如何理解HTML語義化 HTML語義化,簡單來說,就是使用HTML標簽來清晰地表達頁面內容的結構和意義,而不僅僅是作為布局的容器。它強調使用具有明確含義的HTML標簽來描述頁面元素,而不是僅僅依賴CSS來實現頁面的外觀和布局。 理解HTM…

android 權限相關定義解釋

1 PID :程序一運行系統就會自動分配給進程一個獨一無二的PID,內部線程可以共享 該pid的分配的內存數據 2 UID:User Identifier,UID在linux中就是用戶的ID,表明時哪個用戶運行了這個程序,主要用于權限的管理。內部共享各…

【oracle003】圖片轉為字節、base64編碼等形式批量插入oracle數據庫并查詢

1.熟悉、梳理、總結下Oracle相關知識體系 2.歡迎批評指正,跪謝一鍵三連! 資源下載: oci.dll、oraocci11.dll、oraociei11.dll3個資源文件資源下載: Instant Client Setup.exe資源下載: oci.dll、oraocci11.dll、oraoc…

Vue ref訪問這些元素或組件的實例

可以在任意DOM元素上使用ref屬性&#xff0c;然后在Vue實例中通過this.$refs訪問這個DOM元素 1.訪問子組件實例&#xff0c;可以調用方法或者獲取值 <template><div><input type"text" ref"myInput" /><button click"focusInp…