1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/二叉搜索树染色 [QO5KpG].md
2022-04-24 17:05:32 +08:00

47 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

欢迎各位勇者来到力扣城,本次试炼主题为「二叉搜索树染色」。
每位勇士面前设有一个**二叉搜索树**的模型,模型的根节点为 `root`,树上的各个节点值均不重复。初始时,所有节点均为蓝色。现在按顺序对这棵二叉树进行若干次操作, `ops[i] = [type, x, y]` 表示第 `i` 次操作为:
+ `type` 等于 0 时,将节点值范围在 `[x, y]` 的节点均染蓝
+ `type` 等于 1 时,将节点值范围在 `[x, y]` 的节点均染红
请返回完成所有染色后,该二叉树中红色节点的数量。
**注意:**
+ 题目保证对于每个操作的 `x`、`y` 值定出现在二叉搜索树节点中
**示例 1**
>输入:`root = [1,null,2,null,3,null,4,null,5], ops = [[1,2,4],[1,1,3],[0,3,5]]`
>
>输出:`2`
>
>解释:
>第 0 次操作,将值为 2、3、4 的节点染红;
>第 1 次操作,将值为 1、2、3 的节点染红;
>第 2 次操作,将值为 3、4、5 的节点染蓝;
>因此,最终值为 1、2 的节点为红色节点,返回数量 2
![image.png](https://pic.leetcode-cn.com/1649833948-arSlXd-image.png){:width=230px}
**示例 2**
>输入:`root = [4,2,7,1,null,5,null,null,null,null,6]`
>`ops = [[0,2,2],[1,1,5],[0,4,5],[1,5,7]]`
>
>输出:`5`
>
>解释:
>第 0 次操作,将值为 2 的节点染蓝;
>第 1 次操作,将值为 1、2、4、5 的节点染红;
>第 2 次操作,将值为 4、5 的节点染蓝;
>第 3 次操作,将值为 5、6、7 的节点染红;
>因此,最终值为 1、2、5、6、7 的节点为红色节点,返回数量 5
![image.png](https://pic.leetcode-cn.com/1649833763-BljEbP-image.png){:width=230px}
**提示:**
+ `1 <= 二叉树节点数量 <= 10^5`
+ `1 <= ops.length <= 10^5`
+ `ops[i].length == 3`
+ `ops[i][0]` 仅为 `0` or `1`
+ `0 <= ops[i][1] <= ops[i][2] <= 10^9`
+ `0 <= 节点值 <= 10^9`