Python - Recursividad

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Recursividad

Publicado por Camilo (3 intervenciones) el 12/11/2020 15:28:08
Buenas,

Tengo el siguiente método:
1
2
3
4
5
6
7
8
9
10
11
12
def ancesters(self, node, list= []):
    if self.seekNode(node) != False:
        if node < self.id:
            self.left.ancesters(node, list)
        elif node > self.id:
            self.right.ancesters(node, list)
        elif self.id == node:
            return node
        list.append(self.id)
        return list
    else:
        return False

El cual busca los ancestro de un arbol binario, y lo hace bien, el problema es que cada vez que llamo al método:
1
node.ancesters("4")
me retorna la lista de los ancestros del nodo "4", pero tambien me devuelve los ancestros buscados de los nodos anteriores. Ejemplo.
Hices estos llamados:
1
2
node.ancesters("2")
node.ancesters("4")
Y la llamada a node.ancesters("4") me devuelve los ancestros de 2 y 4, no se supone que al mandar como parametro la lista= [], esta deberia inicializarce?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder