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;
}
}
上記の投稿されたコードは、私のレベル オーダー トラバーサル コードです。このコードは私にとってはうまく機能しますが、私が気に入らないことの 1 つは、明示的に初期化temp_node = NULL
しているか、ブレークを使用していることです。しかし、それは私には良いコードではないようです。
これよりもきちんとした実装はありますか、またはこのコードをより良くするにはどうすればよいですか?