【剑指offer】面试题23:从上往下打印二叉树
2017-03-09 01:09
267 查看
题目:从上往下打印二叉树的每个结点,同一层的结点按照从左往右的顺序打印。
思路:我们可以用一个队列来保存我们当前结点的左右子树,然后进行出队分别访问左右子树结点,进行打印。
思路:我们可以用一个队列来保存我们当前结点的左右子树,然后进行出队分别访问左右子树结点,进行打印。
#include<iostream> #include<deque> using namespace std; struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode * m_pRight; }; void PrintFromTopToBottom(BinaryTreeNode* pTreeNode) { if (pTreeNode == NULL) { return; } //创建队列,将当前的结点的左右孩子指针分别放到容器中,方便使用 std::deque<BinaryTreeNode*>dequeTreeNode; dequeTreeNode.push_back(pTreeNode); //我们用队列来解决按层进行打印,也就是我们不需递归,每从队列中取出要打印的结点,并且把该节点的左右子结点保存到队列中即可 while (dequeTreeNode.size()) { BinaryTreeNode* pNode = dequeTreeNode.front(); printf("%d ", pNode->m_nValue); //该节点打印完后,我们进行弹出 dequeTreeNode.pop_front(); if (pNode->m_pLeft) { dequeTreeNode.push_back(pNode->m_pLeft); } if (pNode->m_pRight) { dequeTreeNode.push_back(pNode->m_pRight); } } }
相关文章推荐
- 剑指Offer面试题23(Java版):从上往下打印二叉树
- 【剑指offer 面试题23】从上往下打印二叉树
- 剑指offer——面试题23:从上往下打印二叉树(树的递归创建,广度优先搜索,队列)
- 剑指offer-面试题23-从上往下打印二叉树
- 剑指offer面试题[23]-从上往下打印二叉树(按层序打印)
- 【面试题】剑指Offer-23-从上往下打印二叉树
- 【剑指offer】面试题23:从上往下打印二叉树
- 剑指offer-面试题23:从上往下打印二叉树
- 【剑指offer】4.3举例让抽象问题具体化——面试题23:从上往下打印二叉树
- 剑指offer--面试题23:从上往下打印二叉树--Java实现
- 剑指Offer----面试题23:从上往下打印二叉树(层序遍历)
- 剑指offer——面试题23:从上往下打印二叉树
- 剑指offer面试题23-从上往下打印二叉树
- 剑指Offer之面试题23:从上往下打印二叉树
- 剑指Offer面试题23(Java版):从上往下打印二叉树
- 剑指offer-面试题23-从上往下打印二叉树
- 剑指offer代码解析——面试题23从上往下打印二叉树
- 剑指offer之面试题23:从上往下打印二叉树
- 剑指offer代码解析——面试题23从上往下打印二叉树
- 剑指offer面试题23 从上往下打印二叉树