← 返回博客列表
Google

Google NG Round1 Coding 面經:父節點陣列判斷合法樹

2026-04-14

Google NG Coding Cover

這題給的是「每個節點對應父節點」的表示方式,要求判斷是否為合法樹。演算法本身不難,但面試重點是邏輯是否完整。


題意重述

給定長度為 n 的陣列 parent

判斷是否能形成一棵合法樹。


面試話術(可直接講)

我會用三個條件驗證:

  1. 必須且只能有一個根節點
    先統計 parent[i] == -1 的數量,不是 1 直接回傳 false

  2. 從根出發,每個節點最多只能被訪問一次
    先由 parent 建父到子的鄰接表,再從根做 DFS。
    DFS 過程使用 visited,若某節點重複被訪問,表示結構非法,回傳 false

  3. DFS 完成後必須全覆蓋
    若有任何節點未被訪問,表示不連通,回傳 false
    全部都訪問到才回傳 true


複雜度


常見失誤


一句話總結

這題關鍵是把樹的條件講完整:唯一根、無重複路徑訪問、全節點可達。


需要輔助的同學隨時 dd 哦。

#googlevo #vo #北美求職 #sde求職 #ng求職 #北美找工 #留學生找工作 #求職輔導


延伸閱讀(外鏈)


需要面試真題? 立刻聯繫微信 Coding0201獲得真題

聯繫方式

Email: [email protected]
Telegram: @OAVOProxy