#include <stdio.h>
#include <stdlib.h>
// 二叉树节点结构
struct Node {
int data;
struct Node* left;
struct Node* right;
};
// 创建新节点
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
if (newNode == NULL) {
printf("内存分配失败\n");
exit(1);
}
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 在二叉树中查找指定节点的双亲节点
struct Node* findParent(struct Node* root, int x) {
if (root == NULL) {
return NULL;
}
// 如果根节点就是目标节点,返回 NULL,因为根节点没有双亲节点
if (root->data == x) {
return NULL;
}
// 如果目标节点是根节点的左子节点或右子节点,返回根节点<