如何递归检查给定的红黑树是否遵守"从节点到空链路的每条路径必须包含相同数量的黑节点"的规则.我正在使用这个结构:
enum color = {RED, BLACK};
typedef struct node {
int value;
struct node* left;
struct node* right;
color c;
} node;
Run Code Online (Sandbox Code Playgroud)
我试图使用这个原型实现一个算法:
bool isRBT(struct node* tree, int numberBlackNodesLeft, int numberBlackNodesRight)
Run Code Online (Sandbox Code Playgroud)
但是,我无法递归计算这些数字.因为,规则强制要求来自一个节点的每条路径都必须重复该规则.这对我来说很难实现.
请问有什么好主意吗?
提前致谢!