經典圖論面試題 Invert Binary Tree_Leetcode #226

閱讀時間約 2 分鐘
raw-image

這題的題目在這裡

題目會給我們一顆二元樹的根節點,要求我們對齊根節點正中央的虛擬分割線,反轉整顆二元樹


測試範例:

Example 1:

raw-image
Input: root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]

Example 2:

raw-image
Input: root = [2,1,3]
Output: [2,3,1]

Example 3:

Input: root = []
Output: []

約束條件:

Constraints:

  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100

演算法:

利用DFS遞迴探索整顆樹的性質,來進行鏡像反轉

  1. 交換左子樹和右子樹(在程式碼中,就是交換root.left 和 root.right)
  2. 遞迴處理下一層(這邊我們使用DFS 比較簡潔)
  3. 返回樹根root,樹根本身保持不動


raw-image

程式碼:

class Solution:
 def invertTree(self, root: TreeNode) -> TreeNode:
  
  if root:
   # General case:
   
   # invert child node of current root
   root.left, root.right = root.right, root.left
   
   # invert subtree with DFS
   self.invertTree( root.left )
   self.invertTree( root.right )
   
   return root
  
  else:
   # Base case:
   # empty tree
   
   return None

時間複雜度:

O( n ) 每個節點最多拜訪一次。

空間複雜度:

O( n ) 空間成本耗費在遞迴呼叫時所建立的call stack,

最深的那一層在最後一層,當樹向左歪斜或向右歪斜時,
最深的深度可以到O( n )


Reference:

[1] Python/JS/Java/Go/C++ O(n) by DFS [w/ Visualization] — Invert Binary Tree — LeetCode

52會員
339內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
圖地︱WBC經典賽選手來自臺灣哪裡?用地圖一次看個清楚WBC棒球經典賽的選手來自臺灣各地,究竟哪裡的人最多呢?仔細研究可以發現,其中還有不少人是同一所小學畢業的。
Thumbnail
avatar
圖地
2023-03-20
經典杯子蛋糕with卡布奇諾(番外篇之一)跟外川第一次的意見不合就如此慘痛,野末從沒想過會是這種發展,也讓他深刻體驗到外川竟如此強勢(這就是年下攻嗎?)
Thumbnail
avatar
ShuShu
2023-02-25
暢銷超過44萬冊的日本經典圖書!一個禮物不夠,我還想要更多《兔子小白的禮物樹》|繪本深讀孩子們都很期待過聖誕節,因為這是一個可以拿禮物的日子,還可以欣賞漂亮的聖誕樹和閃亮亮的燈飾,真的是滿滿的幸福感呢。不過說到送禮物,每家規定不同,而禮物不嫌多,如果可以有更多禮物,誰會覺得不好呢!
Thumbnail
avatar
希望書盧:讀書讀繪本也讀生活,偶爾寫點電影的沙龍
2022-12-13
經典發想法6 心智圖發想法(純文字版) 企劃內容 要企劃拯救老舊書店大作戰 練習日期:2022/10/01 心智圖發想法(純文字版)練習方法 首先把要解決問題的關鍵字,寫出來, 接著我們再把和關鍵字有關的類別列出來, 作練習的過程當中如果中途想到甚麼, 都可以隨時補充! 點子大富翁們,開始練習吧! 關鍵字: 老舊書店
Thumbnail
avatar
逍遙遊
2022-10-01
複刻經典 鄂圖曼帝國之香之前去土耳其自由行時,意外發現當地香水文化非常興盛,而且最有趣的是,隨處可見各種香水專賣店不說,還不少標榜「複刻」經典專櫃品牌香水,媽媽我想長住土耳其!(毆)
Thumbnail
avatar
Eileen's
2022-09-08
圖解力的經典-圖解思考的本質歡迎大家來到圖解力的經典好書分享,我是你的圖解力教練奕霖! 談到圖像思維、視覺筆記,我們第一直覺聯想到的可能就像上面這張圖的筆記一樣,運用圖文方式整理資訊,讓內容變得吸睛、活潑、有趣、好記憶! 自2016年我接觸到視覺記錄到視覺筆記實踐的那幾年,我也是這麼想的。 一、 圖解思考的原則與元素  
Thumbnail
avatar
圖解力教練邱奕霖
2022-01-07
圖解力的經典-一張紙的整理術如何用一張紙,搞定工作報告、簡報設計、會議記錄、業務交接等職場大小事?作者在這本書中做了完整的詮釋,也讓我們看見了就算不會畫圖,也能透過圖像框架的思維,來有效提升我們工作生產力,歡迎大家可以動手來試試
Thumbnail
avatar
圖解力教練邱奕霖
2022-01-07
「頂級結構」CSGO經典爆破模式地圖的抽象原型 E 引言 很多即使不熟悉CSGO游戲的朋友或多或少地聽說過一些出圈的CSGO術語。 比如下面兩個經典的出圈梗 Rush B 中門對狙 當然了,絕大多數時候我們在使用這些梗的時候都帶著調侃或惡搞的意味。 事實上CSGO中的戰術遠不止於此,哪怕在戰術變化最單一的Dust2上也有著一些圈外
Thumbnail
avatar
穿過流水
2021-12-18
巴黎精選咖啡館及甜點店地圖+法國巴黎的台灣味人生就像是咖啡,甜和苦都包含其中,懂得享受甜食的人,才能懂得享受人生,和大家分享巴黎精選十三家咖啡館地圖、巴黎精選二十一家必吃甜點店地圖,以及法國巴黎精選台灣美食地圖…
Thumbnail
avatar
法國宅媽
2021-09-03
關於【留長髮的男生】試圖多一點理解女性經驗這種事從留長髮這件事,本宅慢慢發現何謂「男性凝視」,那些因為留長髮自然而然產生的動作,搖身一變成為「性感的象徵」。還給那些自然而然的動作該有的意義,是離開父權社會和男性凝視的一種方法,而縱使性別有無法跨越的鴻溝,我們依然能透過「確認自己不可能擁有的經驗」而畫出我們行使謙卑的範圍。
Thumbnail
avatar
牢騷肥宅
2021-02-08