思路:

  没啥好说的,BFS。

C++:

  1. #include <iostream>
  2. #include <queue>
  3. using namespace std;
  4.  
  5. struct TreeNode {
  6. int val;
  7. TreeNode *left;
  8. TreeNode *right;
  9. TreeNode(int x) : val(x), left(NULL), right(NULL) {}
  10. };
  11.  
  12. void PrintFromTop2Bottom(TreeNode *root)
  13. {
  14. if(root == )
  15. return ;
  16.  
  17. queue<TreeNode* > QueueTreeNode;
  18.  
  19. QueueTreeNode.push(root);
  20.  
  21. while(!QueueTreeNode.empty())
  22. {
  23. TreeNode *temp = QueueTreeNode.front();
  24. cout<<temp->val<<" ";
  25. QueueTreeNode.pop();
  26.  
  27. if(temp->left != )
  28. QueueTreeNode.push(temp->left);
  29. if(temp->right != )
  30. QueueTreeNode.push(temp->right);
  31. }
  32. }
  33.  
  34. int main()
  35. {
  36. TreeNode *Root = new TreeNode();
  37. TreeNode *node1 = new TreeNode();
  38. TreeNode *node2 = new TreeNode();
  39. TreeNode *node3 = new TreeNode();
  40. TreeNode *node4 = new TreeNode();
  41. TreeNode *node5 = new TreeNode();
  42. TreeNode *node6 = new TreeNode();
  43.  
  44. Root->left = node1;
  45. Root->right = node2;
  46. node1->left = node3;
  47. node1->right = node4;
  48. node2->left = node5;
  49. node2->right = node6;
  50.  
  51. cout<<""<<endl;
  52. cout<<" 1 2"<<endl;
  53. cout<<"3 4 5 6"<<endl<<endl;
  54.  
  55. cout<<"从上往下打印二叉树:";
  56. PrintFromTop2Bottom(Root);
  57. }

测试结果:

  1.  
  2. 从上往下打印二叉树:

【剑指offer 面试题23】从上往下打印二叉树的更多相关文章

  1. 剑指Offer:面试题23——从上往下打印二叉树(java实现)

    问题描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路: 按照层次遍历的方法,使用队列辅助. 1.将根结点加入队列. 2.循环出队,打印当前元素,若该结点有左子树,则将其加入队列,若 ...

  2. 剑指Offer - 九度1523 - 从上往下打印二叉树

    剑指Offer - 九度1523 - 从上往下打印二叉树2013-12-01 00:35 题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 输入: 输入可能包含多个测试样例,输入以E ...

  3. 剑指offer(22)从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 题目分析 从下打印就是按层次打印,其实也就是树的广度遍历. 一般来说树的广度遍历用队列,利用先进先出的特点来保存之前节点,并操作之前的 ...

  4. 【剑指offer】不分行从上到下打印二叉树,C++实现(层序遍历)

    原创文章,转载请注明出处! 本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印.例如: 图  不分行从上往下按层打印二叉 ...

  5. 【剑指Offer】22、从上往下打印二叉树

      题目描述:   从上往下打印出二叉树的每个节点,同层节点从左至右打印.   解题思路:   本题实际上就是二叉树的层次遍历,深度遍历可以用递归或者栈,而层次遍历很明显应该使用队列.同样我们可以通过 ...

  6. 剑指offer_面试题_从上往下打印二叉树

    题目:从上往下打印出二叉树的每一个结点.同一层的结点依照从左到右的顺序打印.比如输入图4.5中的二叉树.则依次打印出8.6.10.5.7.9.11. 8 /     \ 6     10 /   \ ...

  7. 剑指offer-面试题23.从上往下打印二叉树

    题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中 的二叉树,则依次打印出8.6.10.5.7.9.11二叉树结点的定义如下: struct BinaryTr ...

  8. 《剑指offer》面试题23 从上往下打印二叉树 Java版

    注意层序遍历的时候对每一层的处理方式可能不同,这里把每一层的元素保存进一个List中了,那么就需要记录每一层的数量. public List<List<Integer>> se ...

  9. 面试题23从上到下打印二叉树+queue操作

    //本题思路就是层次遍历二叉树,使用一个队列来模拟过程 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *ri ...

  10. C++版 - 剑指offer 面试题23:从上往下打印二叉树(二叉树的层次遍历BFS) 题解

    剑指offer  面试题23:从上往下打印二叉树 参与人数:4853  时间限制:1秒  空间限制:32768K 提交网址: http://www.nowcoder.com/practice/7fe2 ...

随机推荐

  1. C# 计算一段代码执行的时间函数

    使用 Stopwatch 类 eg:  计算一个for循环需要的时间 Stopwatch watch = new Stopwatch(); watch.Start(); ; i < ; i++) ...

  2. 欧拉工程第57题:Square root convergents

    题目链接 Java程序 package projecteuler51to60; import java.math.BigInteger; import java.util.Iterator; impo ...

  3. lintcode:Length of Last Word 最后一个单词的长度

    题目: 最后一个单词的长度 给定一个字符串, 包含大小写字母.空格' ',请返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 样例 给定 s = "Hello World& ...

  4. idea 找不到 没有 tomcat server

    follow me 1. 2. 3. 4.

  5. BeanFactory 和 ApplicationContext

    Spring通过一个配置文件描述Bean及Bean直接的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系.Sprig的IoC容器在完成这些底层工作的基础上,还提供了Bea ...

  6. Android zxing连续扫描

    initCamera(); if (mHandler != null) mHandler.restartPreviewAndDecode(); 在扫描完毕后执行这3句即可. 说明: 1.扫描处理方法为 ...

  7. NDK(22)JNI编程如何避免常见缺陷

    转自 : http://www.ibm.com/developerworks/cn/java/j-jni/index.html 避免常见缺陷 假设您编写了一些新 JNI 代码,或者继承了别处的某些 J ...

  8. Image.FrameDimensionsList 属性-----具体使用案例2

    图片的拆分 1.保存png图片 using System; using System.Collections.Generic;using System.ComponentModel;using Sys ...

  9. [原]用WebBrowser组件模拟人工运行搜索引擎自动点击搜索结果的实验

    本代码只是业余时间无聊写着试试,用WebBrowser组件模拟人工运行搜索引擎自动点击搜索结果的实验 这是网络中盛传的提高搜索引擎点击率的一种方式,当然属于作弊,不推荐各位使用.另外这种方式的性能不佳 ...

  10. 获取Android 手机屏幕宽度和高度以及获取Android手机序列号

    1.获取Android 手机屏幕宽度 1 DisplayMetrics dm = new DisplayMetrics(); 2 this.getWindowManager().getDefaultD ...