Level Order Traversal eines binären Baumes

void traverse(Node* root)
{
    queue<Node*> q;

    Node* temp_node= root;

    while(temp_node)
    {
        cout<<temp_node->value<<endl;

        if(temp_node->left)
            q.push(temp_node->left);

        if(temp_node->right)
            q.push(temp_node->right);

        if(!q.empty())
        {
            temp_node = q.front();
            q.pop();
        }
        else
            temp_node = NULL;
   }
 }

Der oben angegebene Code ist mein Code für die Levelbestellung. Dieser Code funktioniert gut für mich, aber eine Sache, die ich nicht mag, ist, ich initialisiere explizittemp_node = NULL oder ich benutze break. Aber es scheint mir kein guter Code zu sein.

Gibt es eine ordentliche Implementierung als diese oder wie kann ich diesen Code verbessern?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage