给你一棵 n
个节点的无向树,节点从 1 到 n
编号,树以节点 1 为根。树由一个长度为 n - 1
的二维整数数组 edges
表示,其中 edges[i] = [ui, vi]
表示在节点 ui
和 vi
之间有一条边。
一开始,所有边的权重为 0。你可以将每条边的权重设为 1 或 2。
两个节点 u
和 v
之间路径的 代价 是连接它们路径上所有边的权重之和。
选择任意一个 深度最大 的节点 x
。返回从节点 1 到 x
的路径中,边权重之和为 奇数 的赋值方式数量。
由于答案可能很大,返回它对 109 + 7
取模的结果。
注意: 忽略从节点 1 到节点 x
的路径外的所有边。
示例 1:
输入: edges = [[1,2]]
输出: 1
解释:
1 → 2
)。示例 2:
输入: edges = [[1,2],[1,3],[3,4],[3,5]]
输出: 2
解释:
1 → 3
和 3 → 4
)。
提示:
2 <= n <= 105
edges.length == n - 1
edges[i] == [ui, vi]
1 <= ui, vi <= n
edges
表示一棵合法的树。