题目:二叉树的镜像
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
解题思路
求一棵树镜像的过程:先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶子节点的左右子节点后,就得到了树的镜像。
参考代码
/*
public class TreeNode
{
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode (int x)
{
val = x;
}
}*/
class Solution
{
public TreeNode Mirror(TreeNode root)
{
// write code here
if(root == null)
return null;
if(root.left == null && root.right == null)
return null;
TreeNode rootLeft = root.left;
root.left = root.right;
root.right = rootLeft;
if(root.left != null)
Mirror(root.left);
if(root.right != null)
Mirror(root.right);
return root;
}
}