c - 递归如何在二叉搜索树中工作?

标签 c algorithm recursion

二叉搜索树算法通常使用递归,我很难用它。

这是将树转换为其镜像的代码。

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/

相关文章:

初学者的 cstring 麻烦

c++ - 处理数组

c - 指向值不变

performance - 如何实现 super 优化器

PHP 递归中断

eclipse - Ocaml 递归 : Pattern Matching

C函数在不指定参数数据类型的情况下工作

用于测试扑克牌手牌的算法(4 到顺子)?

python - Pandas 数据框前瞻优化

python通过递归函数获取所有子集