描述
操作给定的二叉树,将其变换为源二叉树的镜像。
比如: 源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
示例
// 输入
{8,6,10,5,7,9,11}
// 返回
{8,10,6,11,9,7,5}
代码实现
PHP
<?php
/*class TreeNode{
var $val;
var $left = NULL;
var $right = NULL;
function __construct($val){
$this->val = $val;
}
}*/
function Mirror(&$root)
{
if(!$root)return;
$temp1 = $temp2 = NULL;
if($root->left){
$temp1 = Mirror($root->left);
}
if($root->right){
$temp2 = Mirror($root->right);
}
$root->left = $temp2;
$root->right = $temp1;
return $root;
}
GOlang
/**
* 二叉树的镜像
*
* @param pRoot TreeNode 类
* @return TreeNode 类
*/
func Mirror( pRoot *TreeNode ) *TreeNode {
if nil == pRoot {
return pRoot
}
pRoot.Left, pRoot.Right = Mirror(pRoot.Right), Mirror(pRoot.Left)
return pRoot
}
还不快抢沙发