c - 如何找到两个 BST 之间的最低公共节点?
问题描述
我需要在两个 BST 中找到最低的公共节点。我很难找出如何去做。我应该使用递归,而不是在数组中存储值。
我试图实现中序搜索。但它不起作用,因为它什么也没返回。
这是我的插入功能:
tree *insert(tree* node, int data){
if (node == NULL) {
node = malloc(sizeof(node));
node->data = data;
node->left = node->right = NULL;
}
else if (data < node->data)
node->left = insert(node->left, data);
else if (data > node->data)
node->right = insert(node->right, data);
return node;
}
我的搜索功能。
tree *search (tree* node, int data){
if (node == NULL || node->data == data){
return node;
}
if (data > node->data){
return search(node->right, data);
}
return search(node->left, data);
}
和我的最低通用功能:
int lowest_common (tree *t1, tree *t2){
if(t1 == NULL || t2 == NULL){
return -1;
}
if(t1->data == t2->data){
return 1;
}
else if (t1->data != t2->data){
lowest_common(t1->left, t2);
search(t2, t1->data);
lowest_common(t1->right, t2);
}
printf("test");
return 1;
}
在两棵树中插入输入后,我会调用 minimum_common(t1, t2)
如果没有公共节点,它应该返回 -1,如果有公共的最低节点,它应该返回 1。但它什么也不返回。有任何想法吗?
解决方案
推荐阅读
- python - Sklearn Transformers:如何将编码器应用于多个列并在生产中重用?
- python - 数据框中某列中基于特定条件的行的时间差
- reactjs - 如何在同一来源发出 http 请求,以访问 react.js 中目录文件的 JSON 数据
- java - 用一周的日期转换字符串
- flutter - 如何在使用 google_nav_bar Flutter 单击选项卡时切换类
- ruby-on-rails - Ruby On Rails 使用错误的版本执行
- r - 替换以美元符号开头的句子中的所有单词
- case - 在语句 -Snowflake 的情况下,无法连接基于不同列的值
- c++ - 有没有办法有条件地初始化全局静态变量?
- node.js - 没有堆栈跟踪的节点/TS 节点崩溃