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;
}
}
上面发布的代码是我的层序遍历代码。这段代码对我来说运行良好,但我不喜欢的一件事是我明确地初始化
temp_node = NULL
或使用break。但在我看来,这似乎不是一个好的代码。是否有比这更简洁的实现方法或如何使这段代码更好?
level-order
比breadth first search
(BFS)术语更具表现力和简洁性。只需按层遍历即可。听起来很简单! - RBT