Traverser tous les nœuds d'un arbre binaire en Java

Disons que j'ai un binaire simple nœud de l'arborescence de la classe, comme suit:

public class BinaryTreeNode {
    public String identifier = "";
    public BinaryTreeNode parent = null;
    public BinaryTreeNode left = null;
    public BinaryTreeNode right = null;

    public BinaryTreeNode(BinaryTreeNode parent, String identifier)
    {
        this.parent = parent; //passing null makes this the root node
        this.identifier = identifier;
    }

    public boolean IsRoot() {
        return parent == null;
    }
}

Comment pourrais-je ajouter une méthode qui est capable de parcourir récursivement par le biais de n'importe quelle taille de l'arbre, la visite de chaque nœud existant de gauche à droite, sans revisiter un nœud qui a déjà été parcouru?

Serait-il?:

public void traverseFrom(BinaryTreeNode rootNode)
{
    /* insert code dealing with this node here */

    if(rootNode.left != null)
        rootNode.left.traverseFrom(rootNode.left);

    if(rootNode.right != null)
        rootNode.traverseFrom(rootNode.right);
}

source d'informationauteur RectangleEquals