《剑指Offer》题目:二叉树的镜像
题目描述:请完成一个函数,输入一个二叉树,该函数输出它的镜像
题目分析:先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点的左右子结点之后,就得到了树的镜像。
Java代码:
class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(int x){ val = x ; } } public class MirrorBinaryTree { public void Mirror(TreeNode root) { TreeNode tempNode; if (root == null){ return; } if (root.left == null && root.right == null) return; tempNode = root.left; root.left = root.right; root.right = tempNode; if (root.left!=null) Mirror(root.left); if (root.right!=null) Mirror(root.right); }
技进乎艺,艺进乎道