题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。
struct BinaryTreeNode{
int m_nValue;
BinaryTreeNode* m_pLeft;
BinaryTreeNode* m_pRight;
}
void PrintFromTopToBottom(BinaryTreeNode* pTreeRoot){
if (!pTreeRoot){
return;
}
std::deque<BinaryTreeNode *> dequeTreeNode;
dequeTreeNode.push_back(pTreeRoot);
while (dequeTreeNode.size()){
BinaryTreeNode *pNode = dequeTreeNode.front();
dequeTreeNode.pop_front();
print("%d ", pNode->m_nValue);
if (pNode->m_pLeft){
dequeTreeNode.push_back(pNode->m_pLeft);
}
if (pNode->m_pRight){
dequeTreeNode.push_back(pNode->m_pRight);
}
}
}
扩展:
- 广度优先遍历图
1万+

被折叠的 条评论
为什么被折叠?



