2025-03-19:标记所有节点需要的时间。用go语言,给定一棵无向树,树中的节点编号从 0 到 n-1。同时给出一个长度为 n-1 的二维整数数组 edges,其中 edges[i] = [ui, vi] 表示节点 ui 和 vi 之间有一条边。
初始时,所有节点都未被标记。对于节点 i:
1.如果 i 是奇数,且在前一个时刻(x-1)至少有一个相邻节点被标记,那么节点 i 会在时刻 x 被标记。
2.如果 i 是偶数,且在前两个时刻(x-2)至少有一个相邻节点被标记,那么节点 i 会在时刻 x 被标记。
你需要返回一个数组 times,其中 times[i] 表示:如果在时刻 t=0 标记节点 i,那么时刻 times[i] 时,树中所有节点都会被标记。
注意:每个 times[i] 的计算是独立的,即在计算 times[i] 时,其他节点都未被标记。
2 <= n <= 100000。
edges.length == n - 1。
edges[i].length == 2。
0 <= edges[i][0], edges[i][1] <= n - 1。
输入保证 edges 表示一棵合法的树。
输入:edges = [[0,1],[0,2]]。
输出:[2,4,3]。
解释:
对于 i = 0 :
节点 1 在时刻 t = 1 被标记,节点 2 在时刻 t = 2 被标记。
对于 i = 1 :
节点 0 在时刻 t = 2 被标记,节点 2 在时刻 t = 4 被标记。
对于 i = 2 :
节点 0 在时刻 t = 2 被标记,节点 1 在时刻 t = 3 被标记。
相似问题