LeetCode-226-Flip árbol binario (simple)


1. Descripción

Voltea un árbol binario.

2. Ejemplo

entrar:
Inserte la descripción de la imagen aquí

Salida:
Inserte la descripción de la imagen aquí

3. Análisis

Observe la entrada y la salida, tome el nodo "4" como objetivo de observación, puede ver que el nodo raíz "4" permanece sin cambios, su hijo izquierdo "2" y el hijo derecho "7" han intercambiado posiciones y el hijo izquierdo "2" está ubicado El subárbol izquierdo y el subárbol derecho donde se encuentra el hijo derecho "7" también han intercambiado posiciones como un todo. La misma regla también existe en otros nodos.
Entonces llegamos a la conclusión,

La operación de voltear el árbol binario incluye:
(1) El nodo raíz permanece sin cambios;
(2) El subárbol izquierdo y el subárbol derecho se intercambian.
(3) Voltee el subárbol izquierdo;
(4) Voltee el subárbol derecho.

4. Código

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    
    
    public TreeNode invertTree(TreeNode root)
    {
    
    
    	// 递归的终止条件
        if(root == null)
            return root;
        // 根非空的话,交换左右子树
        TreeNode cache = root.left;
        root.left = root.right;
        root.right = cache;
        // 翻转左子树
        invertTree(root.left);
        // 翻转右子树
        invertTree(root.right);
        return root;
    }
}

5. Verificación

Inserte la descripción de la imagen aquí

6. Fuente

  1. LeetCode 226. Invertir árbol binario
    Fuente: LeetCode
    Enlace: https://leetcode-cn.com/problems/invert-binary-tree Los
    derechos de autor son propiedad de LeetCode Network. Para reimpresiones comerciales, comuníquese con la autorización oficial. Para reimpresiones no comerciales, indique la fuente.

Supongo que te gusta

Origin blog.csdn.net/PursueLuo/article/details/108630077
Recomendado
Clasificación