本文参考自《剑指offer》一书,代码采用Java语言。html
更多:《剑指Offer》Java实现合集 java
请完成一个函数,输入一个二叉树,该函数输出它的镜像。面试
画图能够很清晰地获得思路:先前序遍历,对每一个结点交换左右子结点。编程
测试算例 函数
1.功能测试(普通二叉树;左斜树;右斜树;一个结点)post
2.特殊测试(根结点为null;)测试
//题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。 public class MirrorOfBinaryTree { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public void Mirror(TreeNode root) { if(root==null) return; //左右子结点交换 TreeNode tempNode = root.left; root.left=root.right; root.right=tempNode; Mirror(root.left); Mirror(root.right); } }
画图使抽象问题形象化,面试时要在编程前先用画图、举例子等来解释思路。this
更多:《剑指Offer》Java实现合集 url