Le nœud suivant de l'arbre binaire pour prouver l'offre de sécurité

Titre description

Et dans lequel un arbre binaire donné d'un nœud, 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.

pensée

Tout d' abord, déterminer si le noeud a pas de nœuds enfants droit, le cas échéant, a été traversé les nœuds enfants enfant gauche et à droite, jusqu'à ce qu'un NULL, puis revenir au nœud enfant gauche
si le nœud est pas de nœuds enfants à droite, puis un couche, déterminer si le noeud n'est pas le noeud enfant gauche parent, si le nœud parent est retourné, sinon, continuer jusqu'à il n'y a pas de nœud parent, ce qui indique que ce noeud est le dernier noeud, ou NULL

code

class Solution {
public:
    TreeLinkNode* GetNext(TreeLinkNode* pNode)
    {
        if(pNode == NULL)
            return NULL;
        if(pNode->right != NULL)
        {
            TreeLinkNode* tmp = pNode->right;
            while(tmp->left != NULL)
                tmp = tmp->left;
            return tmp;
        }
        while(pNode->next != NULL)
        {
            TreeLinkNode* tmp = pNode->next;
            if(tmp->left == pNode)
                return tmp;
            pNode = tmp;
        }
        return NULL;
    }
};
Publié 85 articles originaux · louanges gagnées 0 · Vues 400

Je suppose que tu aimes

Origine blog.csdn.net/weixin_38312163/article/details/104810516
conseillé
Classement