如何将树转换为其镜像树。例如
1 1
/ /
2 3 to 3 2
/
4 4
执行订单后遍历。
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;
}
}
解决方案使用递归将树转换为其镜像树。
- 如果两棵树的根都为空,则它们是相同的。返回true
- 如果两个树的根都不为空,请检查两个节点中的数据是否相同,并递归检查左子树和右子树是否相同
- 如果其中只有一棵树的根为null,则这两棵树不相同,因此返回false
来源:http://www.ideserve.co.in/learn/mirror-a-tree