剑指offer_面试题_从上往下打印二叉树
2017-06-15 21:40
344 查看
题目:从上往下打印出二叉树的每一个结点。同一层的结点依照从左到右的顺序打印。比如输入图4.5中的二叉树。则依次打印出8、6、10、5、7、9、11。
8
/ \6 10
/ \ / \5 7 9 11
思路:树的层序遍历。应用 队列 这一数据容器。如上图的输出顺序,每当父结点出队(输出),孩子结点才会入队。
算法例如以下:
/**层序遍历*/ void PrintFromToBottom(TreeNode *pRoot) { if(NULL == pRoot) return; queue<TreeNode *> temp; /**定义一个存放二叉树结点的队列*/ temp.push(pRoot); /**头结点入栈*/ while(!temp.empty()) { TreeNode *p = temp.front(); /**获取队列头部数据*/ cout << p->m_pValue << ' '; temp.pop(); /**头部数据出栈,让它的左右孩子结点入栈*/ if(p->lchild) temp.push(p->lchild); if(p->rchild) temp.push(p->rchild); } cout << endl; }
/* 点滴积累,我的一小步 */
相关文章推荐
- 剑指offer 面试题23—从上往下打印二叉树
- 剑指Offer:面试题23 从上往下打印二叉树
- 剑指Offer面试题23(Java版):从上往下打印二叉树
- 剑指offer-面试题23-从上往下打印二叉树
- 剑指offer-面试题23:从上往下打印二叉树
- 【剑指offer 面试题23】从上往下打印二叉树
- 剑指offer代码解析——面试题23从上往下打印二叉树
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印(剑指offer,面试题32)
- 剑指offer面试题23 从上往下打印二叉树
- 剑指offer代码解析——面试题23从上往下打印二叉树
- 剑指offer面试题23-从上往下打印二叉树
- 【剑指offer】面试题32(1):从上往下不分行打印二叉树
- 【面试题】剑指Offer-23-从上往下打印二叉树
- 剑指offer-面试题23.从上往下打印二叉树
- 剑指offer--面试题23:从上往下打印二叉树--Java实现
- 【剑指offer】面试题23:从上往下打印二叉树
- 剑指offer-第四章解决面试题的思路(从上往下打印二叉树)
- 【剑指Offer学习】【面试题23:从上往下打印二叉树】
- 【剑指Offer面试题】 九度OJ1523:从上往下打印二叉树
- 剑指offer——面试题23:从上往下打印二叉树