P27:操作给定的二叉树,将其变换为源二叉树的镜像。
package jianzhi_offer;
public class P27_Solution {
public void Mirror(TreeNode root) {
if (root == null)
return;
if (root.left == null && root.right == null)
return;
TreeNode temp = null;
temp = root.left;
root.left = root.right;
root.right = temp;
if (root.left != null)
Mirror(root.left);
if (root.right != null)
Mirror(root.right);
}
public static void main(String[] args) {
}
}
P28:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
package jianzhi_offer;
public class P28_Solution {
boolean isSymmetrical(TreeNode pRoot) {
boolean res = helper(pRoot, pRoot);
return res;
}
public boolean helper(TreeNode t1, TreeNode t2) {
if(t1 == null && t2 == null)
return true;
if (t1 == null || t2 == null)
return false;
return (t1.val == t2.val) && helper(t1.left,t2.right) && helper(t1.right,t2.left);
}
public static void main(String[] args) {
}
}