Et dans lequel un arbre binaire donné d'un nœud, trouver le nœud suivant dans un ordre pré-commande et traversal retours.

Un besoin de se rappeler ce que le sujet.

Titre Description
Étant donné un arbre binaire et un noeud qui est, trouver le nœud suivant dans un ordre pré - commande et traversal retours. Notez que le nœud de l'arbre contient non seulement les nœuds enfants gauche et à droite, le nœud parent contient un pointeur vers.

problème solution

Suivant noeud arbre binaire:
La règle de déplacement, lorsqu'il est présent dans le sous - arbre droit du noeud, la séquence suivante noeud de traversée pour le nœud le plus à gauche sous - arbre droit. Toutefois, lorsque le nœud n'existe pas sous - arbre droit, envue du nœud traversal suivant dans le nœud doit avoir pour les parents. Mais qu'est-ce quelle génération?
Les caractéristiques de la séquence, à gauche du noeud parent doit avoir été visité séquence de traversée, de sorte que le noeud suivant doit être la première sur le noeud parent à droite de la trajectoire de nœud parent.

Afinde résultats traversal: d-> b-> h-> e > i-> a-> F-> c-> g
de crises à travers les résultats , voir l' analyse des explications.

Code est la suivante:

/*
public class TreeLinkNode {
    int val;
    TreeLinkNode left = null;
    TreeLinkNode right = null;
    TreeLinkNode next = null;

    TreeLinkNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public TreeLinkNode GetNext(TreeLinkNode pNode)
    {

 if(pNode == null) return null;
 
        if(pNode.right != null){
            pNode = pNode.right;
            while(pNode.left != null)
                pNode = pNode.left;
            return pNode;
        }
 
        while(pNode.next != null){
            if(pNode.next.left == pNode)
                return pNode.next;
            pNode = pNode.next;
        }
        return null;
    }
}

Je suppose que tu aimes

Origine www.cnblogs.com/dearnotes/p/12563245.html
conseillé
Classement