LONGEPASS
Q24.

若 t 表示二元樹之樹根,下列程式之意涵,何者是正確的?電腦軟體設計共同科目 乙級 第 24 題 題目 圖片

電腦軟體設計共同科目 · 乙級 · Q24

難易度分析

3 / 5

本題要求分析二元樹的遞迴演算法邏輯,需能準確區分計算節點總數與計算樹高在程式結構上的差異,屬於典型的資料結構遞迴分析題目。

正確答案:④傳回二元樹之高度

④ 傳回二元樹之高度:此為計算二元樹高度(Tree Height)的標準遞迴演算法:當樹根為空回傳 0,否則回傳 `max(左子樹高度, 右子樹高度) + 1`,符合分治法(Divide and Conquer)的設計原理。

錯誤選項解析

  • ① 傳回二元樹之節點個數:計算二元樹節點個數應使用 `1 + count(left) + count(right)` 的遞迴累加方式,而非取左右子樹的 max 值,此選項混淆了「計數」與「求高度」的演算法邏輯。
  • ② 比較二元樹樹根之左右兩子樹,然後傳回兩子樹中較多節點之個數:此描述指的是比較左右子樹節點數並回傳較大值,但程式碼使用的是 max 函數搭配遞迴呼叫,屬於計算樹高的典型模式,而非統計節點數量。
  • ③ 比較二元樹樹根之左右兩子樹,然後傳回兩子樹中高度較高之數值:此選項僅描述回傳較高子樹的高度數值,但忽略了遞迴中關鍵的 +1 運算(需加上根節點本身的高度層級),因此描述不完整且不正確。
Learning Tip

"此題核心考點為二元樹遞迴演算法的辨識。常見陷阱在於混淆「節點計數」(使用加法累加)與「樹高計算」(使用 max 取較大值再加 1)。實務上,樹高決定了二元搜尋樹的操作時間複雜度為 O(h),而完全二元樹的樹高為 ⌊log₂n⌋,此為檢定常考重點。"

學員答題分佈

①傳回二元樹之節點個數0%
②比較二元樹樹根之左右兩子樹,然後傳回兩子樹中較多節點之個數0%
③比較二元樹樹根之左右兩子樹,然後傳回兩子樹中高度較高之數值0%
④傳回二元樹之高度0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目