Quindi di recente mi sono imbattuto in questa domanda: creare una funzione che converta un albero binario di ordine in corso in una lista doppiamente collegata. Apparentemente, è una domanda di intervista comune.
Questa è la strategia che ho avuto - Basta fare un traversamento pre-ordine dell'albero, e invece di restituire un nodo, restituire un elenco di nodi, nell'ordine in cui li attraversi. restituire una lista e aggiungere il nodo corrente all'elenco in ogni punto. Per il caso base, restituisci il nodo stesso quando sei su una foglia.
quindi diresti
left = recursive_function(node.left)
right = recursive_function(node.right)
return(left.append(node.data)).append(right);'
È questo l'approccio giusto?