Java juzga si un árbol binario es axisimétrico

Determinar si un árbol es axisimétrico

Tema Descripción

Dada la raíz del nodo raíz de un árbol binario, verifique si es axisimétrico.

ejemplo

inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

Título original DO enlace

https://leetcode.cn/problemas/simétrico-árbol/

respuesta

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    
    
    //判断root对不对称,就是看root.left,root.right两个子树对不对称;而看两个子树对不对称就是看左子树的左节点和右子树的右节点的值相不相同以及左子树子树的右节点和右子树的左节点的值相不相同(当然这里是需要递归的)
    public boolean isSymmetric(TreeNode root) {
    
    
        if(root == null){
    
    
            return false;
        }
        return isSymmetricChild(root.left,root.right);

    }
    public boolean isSymmetricChild(TreeNode treeLeft,TreeNode treeRight){
    
    
        if(treeLeft == null && treeRight== null){
    
    
            return true;
        }
        if(treeLeft == null && treeRight != null || treeLeft != null && treeRight== null){
    
    
            return false;
        }
       if( treeLeft.val != treeRight.val ){
    
    
           return false;
       }
       return isSymmetricChild(treeLeft.left,treeRight.right) && isSymmetricChild(treeLeft.right,treeRight.left);
    }
}

Supongo que te gusta

Origin blog.csdn.net/baixian110/article/details/130950626
Recomendado
Clasificación