判断二叉树是否是对称的,即镜像对称

剑指offer中的题型和leetcode101二叉树的镜像对称问题

public class Solution {
    boolean isSymmetrical(TreeNode pRoot)
    {
        if(pRoot==null) return true;
        else return check(pRoot.left,pRoot.right);
         
    }
    boolean check(TreeNode left,TreeNode right){
        if(left==null && right==null) return true;
        if(left==null&& right!=null|| left!=null&& right==null)
            return false;
        if(left.val!=right.val) return false;
        else return check(left.left,right.right)&&check(left.right,right.left);
    }
}
将二叉树的左右节点替换,完成镜像翻转
public class PointToJava {
        public void Mirror(TreeNode root){
            if(root==null) return;
             else{
                TreeNode tmp=root.left;
                root.left=root.right;
                root.right=tmp;
                  Mirror(root.left);
                 Mirror(root.right);
               }
        }
}

相关文章: