Anwendungsbeispiele für die Kernidee des Binärbaums: Binärbaumspiegelung/Tiefe des Binärbaums/ausgeglichener Binärbaum

Die klassischste rekursive Routine zu Tree

Verwenden Sie die Hauptfunktion, um die Parameter root.left und root.right zu übergeben und mit einer Referenz zu speichern.
Gleichzeitig sollten Sie auch auf den Rückgabewert und das Rückgabeergebnis achten

Schwert bezieht sich auf Angebot 27. Spiegelbild des Binärbaums

Bitte vervollständigen Sie eine Funktion, die einen Binärbaum als Eingabe verwendet und die Funktion sein Spiegelbild ausgibt.

class Solution {
    
    
    public TreeNode mirrorTree(TreeNode root) {
    
    
        // 首先进行判空操作
        if(root == null){
    
    
            return null;
        }
        TreeNode l = mirrorTree(root.left);
        TreeNode r = mirrorTree(root.right);

        // 左右互换
        root.left = r;
        root.right = l;

        return root;
    }
}

Das Schwert bezieht sich auf Angebot 55 – I. Die Tiefe des Binärbaums

class Solution {
    
    
    public int maxDepth(TreeNode root) {
    
    
        if(root==null){
    
    
            return 0;
        }
        int l = maxDepth(root.left);
        int r = maxDepth(root.right);
        if(l>r){
    
    
            return l+1;
        }else {
    
    
            return r+1;
        }
    }
}

Schwertzeiger-Angebot 55 – II. Ausgewogener Binärbaum

Ausgeglichener Binärbaum: Der Höhenunterschied zwischen dem linken und rechten Teilbaum eines Knotens überschreitet nicht 1

class Solution {
    
    
    public int maxDepth(TreeNode root) {
    
    
        if(root==null){
    
    
            return 0;
        }
        int l = maxDepth(root.left);
        int r = maxDepth(root.right);
        if(l>r){
    
    
            return l+1;
        }else {
    
    
            return r+1;
        }
    }
    public boolean isBalanced(TreeNode root) {
    
    
        if(root==null){
    
    return true;}
        int l = maxDepth(root.left);
        int r = maxDepth(root.right);
        
        return Math.abs(l-r)<=1 && isBalanced(root.left) && isBalanced(root.right);
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_39537400/article/details/124024269
Recomendado
Clasificación