题目要求:
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
问题分析:
这道题很明显能够看出就是从根节点开始进行左右子树的交换,典型的使用递归来进行解题。
这道题比较容易困惑的一个点就是 当遍历到某一个节点左子树或者右子树时,一边为空的情况,这时要使用null来替代空,占据返回数组的一个位置。
比如:
输入:[1,2]
输出:[1,null,2]
解题代码:
class Solution {
public TreeNode mirrorTree(TreeNode root) {
//如果根节点为空
if(root == null){
return root;
}
//左子树进入递归并且保存
TreeNode left = mirrorTree(root.left);
//右子树进入递归并且保存
TreeNode right = mirrorTree(root.right);
//将保存的右子树赋给左子树
root.left = right;
//将保存的左子树赋给右子树
root.right = left;
return root;
}
}