Q24.
若 t 表示二元樹之樹根,下列程式之意涵,何者是正確的?
電腦軟體設計共同科目 · 乙級 · 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 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!