二叉树的镜像
【题目描述】
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
【示例】
输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]
【代码实现】
递归法:
class Solution {
public TreeNode mirrorTree(TreeNode root) {
if(root==null){
return null;
}
TreeNode node=root.left;
root.left=mirrorTree(root.right);
root.right=mirrorTree(node);
return root;
}
}
辅助栈/列表法:
class Solution {
public TreeNode mirrorTree(TreeNode root) {
if(root==null){
return null;
}
LinkedList<TreeNode> stack = new LinkedList<>();
stack.addLast(root);
while(!stack.isEmpty()){
TreeNode node=stack.removeLast();
TreeNode temp=node.left;
node.left=node.right;
node.right=temp;
if(node.left!=null) stack.addLast(node.left);
if(node.right!=null) stack.addLast(node.right);
}
return root;
}
}

浙公网安备 33010602011771号