二叉搜索树算法通常使用递归,我很难使用它。
这是一个将树转换为镜像的代码。
void mirror_image(struct tree* node1)
{
if (node1==NULL)
return;
else
{
struct tree *temp;
mirror_image(node1->left);
mirror_image(node1->right);
temp=node1->left;
node1->left=node1->right;
node1->right=temp;
}
}
这是怎么工作的?
最佳答案
基本上,您是在创建新树时更改其右和左节点指针,因为你正在改变地址。首先,将左节点的值赋给临时指针变量。然后将右节点的值转换为左节点。最后,temp中的值移到了右节点。就像交换一样。
关于c - 递归如何在二叉搜索树中工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18674119/