一棵树可以通过删除其中一条边分成两棵不同的树。给定一棵树,其N
节点由范围内的整数唯一标识[0, N-1]
,我需要编写一个函数来查找需要从树中删除的边,这样生成的树中所有节点 ID 的总和之间的差是最小化。
该函数应该将它发现的最小差异打印到标准输出(stdout)。
该函数将接收以下参数:
parent
这是一个整数数组,具有以下含义:parent[i]
= 节点的父节点i
(更具体地说,它的 ID)
parent[i] = -1
如果我没有父母(我是树的根)
数据约束
树中的最大节点数为 50,000
效率限制
该函数预计在 2 秒内打印结果
例子
Input parent: [1, 4, 4, 2, -1, 2, 2]
aka : 4
/ \
1 2
/ / | \
0 3 5 6
Output: 9
解释:我们删除节点 2 和 6 之间的边。