1. 程式人生 > >二叉樹的映象對稱問題

二叉樹的映象對稱問題

判斷二叉樹是否是對稱的,即映象對稱

劍指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);
               }
        }
}