- 一、题目
- 二、解题思路
- 三、解题代码
一、题目
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
二、解题思路
先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。
三、解题代码
public class Test {/*** 二叉树的树结点*/public static class BinaryTreeNode {int value;BinaryTreeNode left;BinaryTreeNode right;}/*** 请完成一个函数,输入…个二叉树,该函数输出它的镜像** @param node 二叉树的根结点*/public static void mirror(BinaryTreeNode node) {// 如果当前结点不为空则进行操作if (node != null) {// 下面是交换结点左右两个子树BinaryTreeNode tmp = node.left;node.left = node.right;node.right = tmp;// 对结点的左右两个子树进行处理mirror(node.left);mirror(node.right);}}}
