← 返回博客列表
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


复杂度


容易错的点


一句话总结

这题本质不是“写个 DFS”就完了,而是把树的三个条件说完整:唯一根、无重复路径、全节点可达。


需要辅助的同学随时 dd 哦。

#googlevo #vo #北美求职 #sde求职 #ng求职 #北美找工 #留学生找工作 #求职辅导


延伸阅读(外链)


需要面试真题? 立刻联系微信 Coding0201获取真题

联系方式

Email: [email protected]
Telegram: @OAVOProxy