题目:操作给定的二叉树,将其变换为源二叉树的镜像。
递归解决:
package com.mytest.mymain;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}public class MirrorTree { public void Mirror(TreeNode root) { if(root==null) return; if(root.left==null && root.right==null) return; TreeNode treeNode=root.left; root.left=root.right; root.right=treeNode; if(root.left!=null){ Mirror(root.left); } if(root.right!=null){ Mirror(root.right); } }}非递归解决核心代码:while(root!=null || mystack!=null){while(root!=null){ TreeNode treeNode=root.left; root.left=root.right; root.right=treeNode; mystack.push(root); root=root.left;}root=mystack.pop();root=root.right;}
新闻热点
疑难解答