链接:二叉树的镜像__牛客网
来源:牛客网
[编程题]二叉树的镜像
- 热度指数:61352 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
- 算法知识视频讲解
操作给定的二叉树,将其变换为源二叉树的镜像。
数据范围:二叉树的节点数 0≤n≤10000 \le n \le 10000≤n≤1000 , 二叉树每个节点的值 0≤val≤10000\le val \le 1000 0≤val≤1000
要求: 空间复杂度 O(n)O(n)O(n) 。本题也有原地操作,即空间复杂度 O(1)O(1)O(1) 的解法,时间复杂度 O(n)O(n)O(n)
比如:
源二叉树
镜像二叉树
示例1
输入
{8,6,10,5,7,9,11}
输出
{8,10,6,11,9,7,5}
说明
如题面所示
示例2
输入
{}
输出
{}
递归,根不为空时左右孩子互换
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public void Mirror(TreeNode root) {
if(root!=null){
TreeNode tmp=root.left;
root.left=root.right;
root.right=tmp;
Mirror(root.left);
Mirror(root.right);
}
}
}