[Actividad deducción de Fuerza 0310] 543. El diámetro del árbol binario

<>

título Descripción


 Dado un árbol binario, es necesario calcular la longitud de su diámetro. Un árbol binario es la longitud máxima del diámetro de cualesquiera dos nodos en las longitudes de trayectoria. Esta ruta puede pasar a través de la raíz.

示例 :
给定二叉树

          1
         / \
        2   3
       / \     
      4   5    

返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。

注意:两结点之间的路径长度是以它们之间边的数目表示。

 

Ideas de resolución de problemas 


Mis pensamientos

Para dos nodos más largos de longitud de trayectoria, se requiere sólo el número de bordes en el lado izquierdo de cada punto + nodo derecha, el valor máximo para la iteración.

Simplemente es la más alejada de la izquierda a la ruta de extrema derecha es la distancia más larga.

Pero el problema tal existiría, cada nodo requiere un número de lados, habrá un gran número de operaciones repetitivas, ¿cuál es la solución?

# Definición de un nodo de árbol binario. 
# Clase TreeNode (objeto): 
#      def __init __ (self, x): 
#          self.val = x 
#          self.left = Ninguno 
#          self.right = Ninguna 

clase de soluciones (objeto):
     def diameterOfBinaryTree (auto, raíz):
         "" " 
        : tipo raíz: TreeNode 
        : RTYPE: int 
        """ 
        def capas (nodo):
             si  no nodo:
                 retorno 0
             retorno 1+ Max (capas (node.left), las capas (node.right))
         si  noraíz:
             retorno 0 


        # capas de retorno (root.right) 
        pila = [root] 
        ret = -1
         , mientras que len (pila): 
            nodo = stack.pop () 
            izquierda, derecha = 0,0
             si node.left: 
                izquierda = capas ( node.left) 
                stack.append (node.left) 
            si node.right: 
                correctas = capas (node.right) 
                stack.append (node.right) 
            si izquierdo + derecho> ret: 
                ret= Izquierda + derecha
         de retorno RET
Ver código

 

 

 

resumen


 

Supongo que te gusta

Origin www.cnblogs.com/remly/p/12465267.html
Recomendado
Clasificación