问题:
请完成一个函数,输入一个二叉树,该函数输出它的镜像
解答:
递归方法:
要注意node=root.left不只是将root的左子节点赋值给node,而是将root的左子树赋值给node。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode mirrorTree(TreeNode root) {
//如果是空,则返回空
if(root==null) return null;
TreeNode node=root.left;
//互换当前节点的左右子节点
root.left=root.right;
root.right=node;
//递归访问左右子节点
mirrorTree(root.left);
mirrorTree(root.right);
return root;
}
}