Java judges whether a binary tree is axisymmetric

Determine if a tree is axisymmetric

topic description

Given the root node root of a binary tree, check if it is axisymmetric.

example

insert image description hereinsert image description here

Original title OJ link

https://leetcode.cn/problems/symmetric-tree/

answer

/**
 * 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);
    }
}

Guess you like

Origin blog.csdn.net/baixian110/article/details/130950626