C函数将二叉树转换为其镜像树

时间:2015-06-25 17:17:51

标签: c data-structures tree binary-tree

如何将树转换为其镜像树。例如。

    1                     1
   / \                   / \
  2   3        to       3   2
 /                           \
4                             4

2 个答案:

答案 0 :(得分:1)

执行邮政订单遍历。

void mirror(struct node* node) 
{
  if (node!=NULL)
  {
    struct node* temp;

    /* do the subtrees */
    mirror(node->left);
    mirror(node->right);

    /* swap the pointers in this node */
    temp        = node->left;
    node->left  = node->right;
    node->right = temp;
  }
} 

答案 1 :(得分:0)

  

Solution使用递归将树转换为其镜像树。

     
      
  1. 如果两棵树的根都为空,那么它们是相同的。返回true。
  2.   
  3. 如果两个树的根都不为空,请检查两个节点中的数据是否相同,并递归检查左右子树是否相同。
  4.   
  5. 如果只有一棵树的根为空,那么树不相同,所以返回false。
  6.   

来源:http://www.ideserve.co.in/learn/mirror-a-tree