二叉树的镜像
【题目描述】
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
【示例】
输入: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; } }