Java beurteilt, ob ein Binärbaum achsensymmetrisch ist

Bestimmen Sie, ob ein Baum achsensymmetrisch ist

Themenbeschreibung

Überprüfen Sie anhand des Wurzelknotens root eines Binärbaums, ob er achsensymmetrisch ist.

Beispiel

Fügen Sie hier eine Bildbeschreibung einFügen Sie hier eine Bildbeschreibung ein

Originaltitel ABl. Link

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

antworten

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

Ich denke du magst

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