二叉树的镜像
2017-12-24 02:17
197 查看
一、二叉树镜像
二叉树的镜像就是把每个节点的左子树和右字数互换位置,例如源二叉树为:8 / \ 6 10 / \ / \ 5 7 9 11
其镜像二叉树为:
8 / \ 10 6 / \ / \ 11 9 7 5
二、java实现
public void mirrorTree(TreeNode node){ if(node==null){ return; } Stack<TreeNode> stack=new Stack<TreeNode>(); stack.push(node); while(!stack.isEmpty()){ TreeNode current=stack.pop(); if(current.left!=null||current.right!=null){ TreeNode templeft=current.left; TreeNode tempright=current.right; current.left=tempright; current.right=templeft; } if(current.left!=null){ stack.push(current.left); } if(current.right!=null){ stack.push(current.right); } } }
三、测试
public static void main(String[] args) { BinaryTree btree = new BinaryTree("8"); TreeNode node1 = new TreeNode("6"); TreeNode node2 = new TreeNode("10"); TreeNode node3 = new TreeNode("5"); TreeNode node4 = new TreeNode("7"); TreeNode node5 = new TreeNode("9"); TreeNode node6 = new TreeNode("11"); btree.root.left=node1; btree.root.right=node2; node1.left=node3; node1.right=node4; node2.left=node5; node2.right=node6; mirrorTree(btree.root); System.out.println("中序遍历镜像二叉树"); btree.inOrderTraverse(btree.root); }
结果:
中序遍历镜像二叉树 11 10 9 8 7 6 5
截图:
相关文章推荐
- 二叉树问题(打印二叉树,二叉树子结构、镜像、遍历,二叉树满足的路径)
- 面试题19:二叉树的镜像
- 101. Symmetric Tree | 判断二叉树是否为镜像二叉树
- 面试题之二叉树镜像(递归,非递归),深度
- Q13--二叉树的镜像
- 重建二叉树,二叉树的镜像,二叉搜索树的后序遍历
- Interview----将一棵二叉树转换成其镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 剑指Offer----二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树并求一颗二叉树的镜像——题集十
- 将一个二叉树镜像
- 剑指Offer(18)______二叉树的镜像
- 求二叉树镜像
- 二叉树的镜像
- 题目1521:二叉树的镜像-九度
- 求一颗二叉树的镜像
- 二叉树的镜像--递归和迭代分别实现
- 剑指offer(20):二叉树的镜像
- 每日一题——判断二叉树是否平衡,求一棵二叉树的镜像
- 二叉树的镜像