二叉搜索树算法通常使用递归,我很难使用它。
这是一个将树转换为镜像的代码。

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/

10-10 05:03