二叉树的镜像
2017-12-25 10:35
183 查看
package demo; import java.util.Stack; /* * 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 */ public class Offer_38 { public void Mirror(TreeNode root) { //所谓镜像,就是左右子树交换位置 if(root == null) return;//若为空则直接返回 Stack<TreeNode> stack = new Stack<TreeNode>();//新建一个栈空间 stack.push(root);//将给定树入栈 while(!stack.empty()) {//若栈不为空 TreeNode node = stack.pop();//将出栈数据保存在新建的node中 if(node.left != null || node.right != null) {//若node左右均不为空 TreeNode nodeLeft = node.left;//新建左右TreeNode节点 TreeNode nodeRight = node.right; node.left = nodeRight;//交换左右节点 node.right = nodeLeft; } if(node.left != null)//若左右节点不为空则入栈 stack.push(node.left); if(node.right != null) stack.push(node.right); } } public static void main(String[] args) { Offer_38 off = new Offer_38(); TreeNode root = new TreeNode(1); root.left = new TreeNode(6); root.right = new TreeNode(10); root.left.left = new TreeNode(5); root.left.right = new TreeNode(7); root.right.left = new TreeNode(9); root.right.right = new TreeNode(11); } }
相关文章推荐
- 剑指offer--二叉树的镜像
- 剑指Offer题目1521:二叉树的镜像
- 二叉树镜像,对称二叉树的判断-symmetric Tree
- 二叉树的镜像
- 二叉树的镜像——19
- 剑指offer 矩形覆盖 树的子结构 二叉树的镜像 数组中重复的数字 第一个只出现一次的字符
- 二叉树镜像问题
- 二叉树的镜像
- 剑指offer 二叉树的镜像
- 二叉树学习小结(序列化和反序列化、二叉树遍历、二叉树镜像、二叉搜索树、二叉树子结构等)
- 【剑指offer】二叉树的镜像
- 二叉树的镜像
- 剑指offer 二叉树镜像
- 《剑指offer》二叉树镜像
- 二叉树的镜像
- 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
- 题目1521:二叉树的镜像-九度
- 剑指offer--面试题27:二叉树的镜像
- 简单构建一个二叉树并且产生镜像
- 判断二叉树是否平衡、求二叉树的镜像、按行列有序矩阵中快速查找元素是否存在