Ancestro común más bajo ACWING88. Árbol de dos nodos (para probar la seguridad de la oferta)

Dado un árbol binario, el árbol de dos nodos de entrada, buscan el ancestro común más bajo.

Ancestro de nodo de un nodo del árbol incluido él mismo.

nota:

Entrada binaria no está vacío;
dos nodos de entrada no deben vaciar, y es un nodo en el árbol binario;
muestra de
árbol binario [8, 12, 2, null , null, 6, 4, null, null, null, null] como se muestra a continuación:
8
/
122
/
64

  1. Si el nodo del árbol es 2 y la entrada 12, la salida del nodo de árbol ancestro común más bajo 8.

  2. Si el nodo de entrada del árbol es 2 y 6, el ancestro común más bajo del nodo de salida del árbol 2.

class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        if(!root) return NULL;
        if(root == p || root == q) return root;
        TreeNode* Left = lowestCommonAncestor(root -> left,p,q);
        TreeNode* Right = lowestCommonAncestor(root -> right,p,q);
        if(Left && Right) return root;
        if(Left) return Left;
        if(Right) return Right;
        return NULL;
    }
};
Publicados 844 artículos originales · ganado elogios 28 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/tomjobs/article/details/104977424
Recomendado
Clasificación