树的重构与子树大小计算——LeetCode 3331 题解析
在这篇博客中,我们将深入分析 LeetCode 3331. 修改后子树的大小 这道题目,理解 如何重构一棵树,并高效计算修改后子树的大小。
📌 题目解析
1️⃣ 题目描述
给定一棵 n
个节点的树,其中 根节点编号为 0
,并且用 parent
数组表示其结构:
parent[i]
表示 节点i
的父节点。- 由于
0
是根节点,因此parent[0] == -1
。
此外,给定一个长度为 n
的字符串 s
,其中 s[i]
表示 节点 i
对应的字符。
规则修改: 对于 1
到 n - 1
的每个节点 x
,执行以下操作:
- 找到距离
x
最近的祖先y
,使得s[x] == s[y]
。 - 如果
y
存在,则:- 删除
x
与其原父节点之间的边。 - 让
y
变成x
的新父节点。
- 删除