Parcourez l'arbre de recherche binaire pour trouver toutes les feuilles

Je suis assez nouveau dans les arbres, et je suis en train de créer une sorte de "feuille de itérateur". Je pense qu'il devrait mettre tous les nœuds qui n'ont pas de .left et .right valeur sur une pile, mais je ne suis pas sûr de savoir comment ou même si c'est la bonne chose à faire. J'ai essayé de chercher, mais tous les exemples que je viens sur commence par aller à l'extrême gauche de la feuille, et va p = node.parentet je suis d'éviter reliant le nœud parent.

Je ne comprends pas comment je peux repeatedlty commencer à partir de la racine et de passer à travers les vignes sans la visite de la même vigne.

MODIFIER

Je vois des gens suggère d'utiliser une méthode itérative pour résoudre ce problème, et je suis d'accord maintenant. Mais j'ai été frapper ma tête en essayant de trouver la solution pour un itérateur-classe-façon de le faire pendant un certain temps, et j'aimerais savoir si c'est possible, et comment!

source d'informationauteur Sti