#include <stdio.h>
#include <stdlib.h>
// 二叉树结构定义
struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
};
// 找到节点x的双亲节点
struct TreeNode* findParent(struct TreeNode* root, int x) {
if (root == NULL) {
return NULL; // 树为空或未找到节点x
}
// 如果根节点的左子树或右子树的数据等于x,根节点就是x的双亲节点
if ((root->left && root->left->data == x) || (root->right && root->right->data == x)) {
return root;
}
// 否则递归在左子树和右子树中查找
struct TreeNode* leftParent = findParent(root->left, x);
if (leftParent) {
return leftParent; // 如果在左子树中找到,返回左子树的双亲节点
}
return findParent(root->right, x); // 否则在右子树中查找
}
二叉树:设计一个求结点x在二叉树中的双亲结点算法。用c语言
最新推荐文章于 2023-10-29 22:13:28 发布