劍指offer面試題19
牛客網寫真實位址:https://www.nowcoder.com/questionTerminal/564f4c26aa584921bc75623e48ca3011
時間限制:1秒空間限制:32768K 演算法知識視頻講解 操作給定的二叉樹,將其變換為源二叉樹的鏡像。
輸入描述:
二叉樹的鏡像定義:源二叉樹 8 / \ 6 10 / \ / \ 5 7 9 11 鏡像二叉樹 8 / \ 10 6 / \ / \ 11 9 7 5
import java.util.Stack;public class Demo2 {/* * 方法一:遞迴實現 * 當遞迴深度夠深的時候,電腦會死機 */ public void Mirror(TreeNode root) { if(root==null) return; TreeNode temp=root.left; root.left=root.right; root.right=temp; Mirror(root.left); Mirror(root.right); }/* * 方法二:迴圈實現————使用堆棧 */public void Mirror_cir(TreeNode root){if(root==null)return;Stack<TreeNode> stack=new Stack<TreeNode>();stack.push(root);while(!stack.isEmpty()){TreeNode node=stack.pop();if(node.left!=null||node.right!=null){TreeNode temp=node.left;node.left=node.right;node.right=temp;}if(node.left!=null)stack.push(node.left);if(node.right!=null)stack.push(node.right);}}class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}}