mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
48 lines
2.1 KiB
HTML
48 lines
2.1 KiB
HTML
<p>给你一棵二叉树的根 <code>root</code> ,请你将每个节点的值替换成该节点的所有 <strong>堂兄弟节点值的和 </strong>。</p>
|
||
|
||
<p>如果两个节点在树中有相同的深度且它们的父节点不同,那么它们互为 <strong>堂兄弟</strong> 。</p>
|
||
|
||
<p>请你返回修改值之后,树的根<em> </em><code>root</code><em> </em>。</p>
|
||
|
||
<p><strong>注意</strong>,一个节点的深度指的是从树根节点到这个节点经过的边数。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<p><img alt="" src="https://assets.leetcode.com/uploads/2023/01/11/example11.png" style="width: 571px; height: 151px;" /></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>root = [5,4,9,1,10,null,7]
|
||
<b>输出:</b>[0,0,0,7,7,null,11]
|
||
<b>解释:</b>上图展示了初始的二叉树和修改每个节点的值之后的二叉树。
|
||
- 值为 5 的节点没有堂兄弟,所以值修改为 0 。
|
||
- 值为 4 的节点没有堂兄弟,所以值修改为 0 。
|
||
- 值为 9 的节点没有堂兄弟,所以值修改为 0 。
|
||
- 值为 1 的节点有一个堂兄弟,值为 7 ,所以值修改为 7 。
|
||
- 值为 10 的节点有一个堂兄弟,值为 7 ,所以值修改为 7 。
|
||
- 值为 7 的节点有两个堂兄弟,值分别为 1 和 10 ,所以值修改为 11 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<p><img alt="" src="https://assets.leetcode.com/uploads/2023/01/11/diagram33.png" style="width: 481px; height: 91px;" /></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>root = [3,1,2]
|
||
<b>输出:</b>[0,0,0]
|
||
<b>解释:</b>上图展示了初始的二叉树和修改每个节点的值之后的二叉树。
|
||
- 值为 3 的节点没有堂兄弟,所以值修改为 0 。
|
||
- 值为 1 的节点没有堂兄弟,所以值修改为 0 。
|
||
- 值为 2 的节点没有堂兄弟,所以值修改为 0 。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li>树中节点数目的范围是 <code>[1, 10<sup>5</sup>]</code> 。</li>
|
||
<li><code>1 <= Node.val <= 10<sup>4</sup></code></li>
|
||
</ul>
|