學習路線/樹 — 深度優先搜尋 (DFS)

111. 二元樹的最小深度

Easy

Minimum Depth of Binary Tree

TreeDepth-First SearchBinary TreeRecursion

題目描述

給定一棵二元樹,找出其最小深度。最小深度是從根節點到最近葉節點的路徑長度(節點數)。葉節點定義為無左右子節點的節點。

LeetCode 111原題連結 →

解法思路

  1. 使用 DFS 遞迴,對每個節點計算其左右子樹的最小深度
  2. 基礎情況:若節點為空(null),回傳深度 0
  3. 關鍵:若節點只有一側子節點,不能用 min(),須走有值的那側
  4. 只有兩側皆有子節點時,才取 1 + min(left, right)

複雜度分析

  • 時間複雜度:O(n)
  • 空間複雜度:O(h),h 為樹的高度
3920157
演算法準備開始。最小深度 = 根節點到最近葉節點的路徑長度。注意:有單邊子節點的節點不算葉節點!
1 / 18