DFS經典應用題 BST最靠近的公共祖先節點 Leetcode #235

閱讀時間約 3 分鐘

題目敘述

題目會給定我們一顆二元搜索樹的根結點root,和任意兩個樹中的節點p和q。

要求我們找出p, q最靠近的公共祖先節點。

最靠近的公共祖先節點白話講,就是p, q 分別往上走第一個產生交會的節點

題目的原文敘述


測試範例

Example 1:

raw-image
Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
Output: 6
Explanation: The LCA of nodes 2 and 8 is 6.

Example 2:

raw-image
Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
Output: 2
Explanation: The LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself according to the LCA definition.

Example 3:

Input: root = [2,1], p = 2, q = 1
Output: 2
 

約束條件

Constraints:

  • The number of nodes in the tree is in the range [2, 10^5].
  • -109 <= Node.val <= 10^9
  • All Node.val are unique.
  • p != q
  • p and q will exist in the BST.

演算法

善加利用BST的先天規定與特質:

BST本身是一個排序好的二元樹。

左子樹一定比根節點的值還小

右子樹一定比根結點的值還大


討論可能出現的情況:

若p, q 都比根結點,則搜尋左子樹

若p, q 都比根結點,則搜尋右子樹

若p, q一個比根結點大,另一個比根結點小,則當下的節點就是最靠近的公共祖先節點,(Lowest common ancestor, aka LCA )恰好符合定義,即為所求。


程式碼

class Solution:
 def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':

  cur_value = root.val
  
  if p.val > cur_value and q.val > cur_value:
   return self.lowestCommonAncestor( root.right, p, q)
  
  elif p.val < cur_value and q.val < cur_value:
   return self.lowestCommonAncestor( root.left, p, q)
  
  else:
   return root

關鍵知識點

記得聯想到BST二元搜索樹的先天規定與特質:

BST本身是一個排序好的二元樹。

左子樹一定比根節點的值還小

右子樹一定比根結點的值還大


題目的定義,往往就暗藏解題的線索唷!


Reference:

[1] Lowest Common Ancestor of a Binary Search Tree - LeetCode

avatar-img
88會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
題目敘述 題目會給我們一個不規則排列的二維陣列,要求我們列出從起點出發,走次對角線,由左下到右上逐層拜訪的路徑。
題目會給我們一個routes 陣列,裡面都是分別代表每一條公車路線所對應的公車站編號。 題目要求我們計算出,從起點站source到終點站target的最精簡公車路線搭乘次數是幾次? 也就是說,就是在最少轉乘的前提下,旅途中需要搭乘幾條公車路線?
題目會給我們一個pair陣列,裡面都是原本陣列相鄰元素形成的pair,順序已經被打散。 要求我們從pair陣列重建出原本的陣列。 答案可能有不只一組,任選一組回傳即可。
題目會給定我們兩個點座標,分別是起點和終點。 另外,還有一個參數t,代表時間限制。 從起點出發之後,每一秒鐘,我們必須選擇一個N8 8連通的方向,往鄰居的格子點移動。(題目有特別強調,每一秒必須強制移動到下一個格子點,不能停留在原地) 請問我們能不能在時間限制內,從起點走到終點?
題目會給一顆二元樹,要求我們計算節點值 和 子樹平均值相等的node有幾個。
題目會給我們一顆二元樹的根結點,要求我們找出每一層最大的節點值。
題目敘述 題目會給我們一個不規則排列的二維陣列,要求我們列出從起點出發,走次對角線,由左下到右上逐層拜訪的路徑。
題目會給我們一個routes 陣列,裡面都是分別代表每一條公車路線所對應的公車站編號。 題目要求我們計算出,從起點站source到終點站target的最精簡公車路線搭乘次數是幾次? 也就是說,就是在最少轉乘的前提下,旅途中需要搭乘幾條公車路線?
題目會給我們一個pair陣列,裡面都是原本陣列相鄰元素形成的pair,順序已經被打散。 要求我們從pair陣列重建出原本的陣列。 答案可能有不只一組,任選一組回傳即可。
題目會給定我們兩個點座標,分別是起點和終點。 另外,還有一個參數t,代表時間限制。 從起點出發之後,每一秒鐘,我們必須選擇一個N8 8連通的方向,往鄰居的格子點移動。(題目有特別強調,每一秒必須強制移動到下一個格子點,不能停留在原地) 請問我們能不能在時間限制內,從起點走到終點?
題目會給一顆二元樹,要求我們計算節點值 和 子樹平均值相等的node有幾個。
題目會給我們一顆二元樹的根結點,要求我們找出每一層最大的節點值。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
歐美碩博士班學生,若能秒解且靈活運用ddraconian legislation、draconian policy、draconian penalty、draconian restriction、draconian sentence於高階寫作中,已達高階英文「思、辨、達」境界。
Thumbnail
企業管理策略能促進團隊合作協調,並激發其動力和創造力。本文提供重點精華及我的應用提案,幫助企業建立高效的團隊和實現持續性成功。包含:企業擴展階段、團隊目標制定、遊戲角色分配、組織圖建立、書面溝通之重要、統計值的應用、擬訂計畫的方法、協調團隊的技巧等,以及會議和財務計畫的重要性。
Thumbnail
亨利凱洛的《偉大攝影的基礎》系列總共有《偉大攝影的基礎》、《偉大攝影的基礎:風景》、《偉大攝影的基礎:人像》等3本書,共通點都是透過50位攝影大師的作品搭配文字說明講解概念,文字量少而淺白,可以說沒有什麼太過複雜而難解的專有名詞或內容,滿適合對於操作相機已經有基礎概念的人閱讀。
Thumbnail
撰寫日期:2022.09.02 作者:FAHAHA|翁順法 這篇文章介紹了SCQA這個表達框架,能夠幫助你更有效的組織內容,並在開頭吸引聽眾的興趣。 在使用框架時,應該避免被框架限制,也不要被框架的變形嚇到,掌握聽眾的狀態、意願、問題、需求,並視情況變化,才是真正聰明的表達者。
Thumbnail
** 3C機構設計爸版權所有 ** 最後,3C機構設計爸要鼓勵所有機構設計的從業人員,讓自己的技術磚塊堆疊的越縝密,對自己未來的出路就越廣。 學習、您不要再遲疑了,主管都不懂了,你還等待公司主管來教你只會浪費時間,不如讓3C機構設計爸幫你超前部署,比別人擁有更多的能力。
Thumbnail
Pump Room 餐廳落成於18世紀,一腳踏進歷史場景,我非常喜歡的《傲慢與偏見》作家珍‧奧斯汀也鍾情此地,她的兩部小說都出現過這棟古典華美的建築。
Thumbnail
〔薩滿課程-推薦書/重點筆記〕魔藥調製聖典與現代應用指南:神秘學大師親授薰香、精油、花草精 【Genius讀後感】 這是一個神奇的魔法世界,有許多讓人大開眼界的思維領域,裡面詳細的紀錄調配的過程與配方,藥草魔法是運用植物力量的一種特殊方法。這就是薰香、精油、沐浴鹽、藥水和花草精所涉及的範疇。 藥草魔
Thumbnail
我相信人們不分男女老少,都喜歡聽童話故事和民間傳說。在聽故事的過程中,我們將自己融入充滿奇想的情境中,並用奇蹟般的方式找到出路。而我們的先祖,述說故事的人,將他們的經驗化為口耳相傳的故事,讓深陷於相同困境的我們,能夠從故事中找到富有想像力的解決之道。
Thumbnail
產品經理的面試一般都會問哪些問題呢?綜合我自己的招聘經驗,我覺得產品經理面試基本上就是針對個人潛力、通用能力、專業能力三大方面評量,會想了解……
Thumbnail
  近期台灣政治的烽火總會掃到女性身上。似乎在評論女性的工作能力之前,還需要先檢視女性是否有完成家庭與社會責任,其他的個人成就不值一提。是時候看看上個世紀的女性主義文章,如何回應相關的質疑。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
歐美碩博士班學生,若能秒解且靈活運用ddraconian legislation、draconian policy、draconian penalty、draconian restriction、draconian sentence於高階寫作中,已達高階英文「思、辨、達」境界。
Thumbnail
企業管理策略能促進團隊合作協調,並激發其動力和創造力。本文提供重點精華及我的應用提案,幫助企業建立高效的團隊和實現持續性成功。包含:企業擴展階段、團隊目標制定、遊戲角色分配、組織圖建立、書面溝通之重要、統計值的應用、擬訂計畫的方法、協調團隊的技巧等,以及會議和財務計畫的重要性。
Thumbnail
亨利凱洛的《偉大攝影的基礎》系列總共有《偉大攝影的基礎》、《偉大攝影的基礎:風景》、《偉大攝影的基礎:人像》等3本書,共通點都是透過50位攝影大師的作品搭配文字說明講解概念,文字量少而淺白,可以說沒有什麼太過複雜而難解的專有名詞或內容,滿適合對於操作相機已經有基礎概念的人閱讀。
Thumbnail
撰寫日期:2022.09.02 作者:FAHAHA|翁順法 這篇文章介紹了SCQA這個表達框架,能夠幫助你更有效的組織內容,並在開頭吸引聽眾的興趣。 在使用框架時,應該避免被框架限制,也不要被框架的變形嚇到,掌握聽眾的狀態、意願、問題、需求,並視情況變化,才是真正聰明的表達者。
Thumbnail
** 3C機構設計爸版權所有 ** 最後,3C機構設計爸要鼓勵所有機構設計的從業人員,讓自己的技術磚塊堆疊的越縝密,對自己未來的出路就越廣。 學習、您不要再遲疑了,主管都不懂了,你還等待公司主管來教你只會浪費時間,不如讓3C機構設計爸幫你超前部署,比別人擁有更多的能力。
Thumbnail
Pump Room 餐廳落成於18世紀,一腳踏進歷史場景,我非常喜歡的《傲慢與偏見》作家珍‧奧斯汀也鍾情此地,她的兩部小說都出現過這棟古典華美的建築。
Thumbnail
〔薩滿課程-推薦書/重點筆記〕魔藥調製聖典與現代應用指南:神秘學大師親授薰香、精油、花草精 【Genius讀後感】 這是一個神奇的魔法世界,有許多讓人大開眼界的思維領域,裡面詳細的紀錄調配的過程與配方,藥草魔法是運用植物力量的一種特殊方法。這就是薰香、精油、沐浴鹽、藥水和花草精所涉及的範疇。 藥草魔
Thumbnail
我相信人們不分男女老少,都喜歡聽童話故事和民間傳說。在聽故事的過程中,我們將自己融入充滿奇想的情境中,並用奇蹟般的方式找到出路。而我們的先祖,述說故事的人,將他們的經驗化為口耳相傳的故事,讓深陷於相同困境的我們,能夠從故事中找到富有想像力的解決之道。
Thumbnail
產品經理的面試一般都會問哪些問題呢?綜合我自己的招聘經驗,我覺得產品經理面試基本上就是針對個人潛力、通用能力、專業能力三大方面評量,會想了解……
Thumbnail
  近期台灣政治的烽火總會掃到女性身上。似乎在評論女性的工作能力之前,還需要先檢視女性是否有完成家庭與社會責任,其他的個人成就不值一提。是時候看看上個世紀的女性主義文章,如何回應相關的質疑。