//该题原本想用递归实现,但却用循环实现了。。。 //关键用了个队列 #include <queue> void Print(BinaryTreeNode* pRoot, std::queue<BinaryTreeNode*>& Qbt) { if(pRoot != NULL) { cout<<pRoot->m_nValue; if(pRoot->pLeft) Qbt.push(pRoot->pLeft); if(pRoot->pRight) Qbt.push(pRoot->pRight); } } int main() { std::queue<BinaryTreeNode*> Qbt; //省略了创建树的过程,假设其根节点为pRoot Qbt.push(pRoot); while(!Qbt.empty()) { Print(Qbt.front()); Qbt.pop(); } }