二叉树的镜像
来源:互联网 发布:高晓松酒驾事件知乎 编辑:程序博客网 时间:2024/06/11 09:25
一、二叉树镜像
二叉树的镜像就是把每个节点的左子树和右字数互换位置,例如源二叉树为:
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
截图:
阅读全文
1 0
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- Retrofit完成多图片上传
- curl 命令行下载工具使用方法小结
- Zenmap常用参数解释
- xml套json
- Java应用架构的演化之路
- 二叉树的镜像
- LeetCode 279. Perfect Squares
- 第四章 ALDS1_3_D:Areas on the Cross-Section Diagram
- 平均数
- Codeforces 18A 18B 18C
- java使用new和newInstance()创建对象的区别
- 训练计划
- eclipse 配置git过滤文件
- java应用架构