1. /*************************************************************************
  2. > File Name: 21_PrintTreeTopToBottom.cpp
  3. > Author: Juntaran
  4. > Mail: JuntaranMail@gmail.com
  5. > Created Time: 2016年08月30日 星期二 20时24分53秒
  6. ************************************************************************/
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <malloc.h>
  11. #include <bits/stdc++.h>
  12.  
  13. using namespace std;
  14.  
  15. // 二叉树结构体
  16. struct TreeNode
  17. {
  18. int val;
  19. TreeNode* left;
  20. TreeNode* right;
  21. };
  22.  
  23. // 层序遍历
  24. void PrintTreeTopToBottom(TreeNode* root)
  25. {
  26. if (root == NULL)
  27. return;
  28.  
  29. vector<TreeNode*> vec;
  30. vec.push_back(root);
  31.  
  32. int cur = ;
  33. while (cur < vec.size())
  34. {
  35. printf("%d ", vec[cur]->val);
  36. if (vec[cur]->left)
  37. vec.push_back(vec[cur]->left);
  38. if (vec[cur]->right)
  39. vec.push_back(vec[cur]->right);
  40. ++cur;
  41. }
  42. printf("\n");
  43. }
  44.  
  45. TreeNode* createTree()
  46. {
  47. TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
  48. root->val = ;
  49. root->left = (TreeNode*)malloc(sizeof(TreeNode));
  50. root->left->val = ;
  51. root->right = (TreeNode*)malloc(sizeof(TreeNode));
  52. root->right->val = ;
  53. root->right->left = NULL;
  54. root->right->right = NULL;
  55. root->left->left = (TreeNode*)malloc(sizeof(TreeNode));
  56. root->left->left->val = ;
  57. root->left->left->left = NULL;
  58. root->left->left->right = NULL;
  59. root->left->right = (TreeNode*)malloc(sizeof(TreeNode));
  60. root->left->right->val = ;
  61. root->left->right->left = (TreeNode*)malloc(sizeof(TreeNode));
  62. root->left->right->left->val = ;
  63. root->left->right->left->left = NULL;
  64. root->left->right->left->right = NULL;
  65. root->left->right->right = (TreeNode*)malloc(sizeof(TreeNode));
  66. root->left->right->right->val = ;
  67. root->left->right->right->left = NULL;
  68. root->left->right->right->right = NULL;
  69.  
  70. return root;
  71. }
  72.  
  73. int main()
  74. {
  75. TreeNode* test = createTree();
  76. PrintTreeTopToBottom(test);
  77. }

剑指Offer21 二叉树的层序遍历的更多相关文章

  1. 剑指offer 二叉树的层序遍历

    剑指offer 牛客网 二叉树的层序遍历 # -*- coding: utf-8 -*- """ Created on Tue Apr 9 09:33:16 2019 @ ...

  2. 剑指Offer——二叉树

    剑指Offer--二叉树 前言 数据结构通常是编程面试中考察的重点.在参加面试之前,应聘者需要熟练掌握链表.树.栈.队列和哈希表等数据结构,以及它们的操作.本片博文主要讲解二叉树操作的相关知识,主要包 ...

  3. 二叉树的层序遍历 BFS

    二叉树的层序遍历,或者说是宽度优先便利,是经常考察的内容. 问题一:层序遍历二叉树并输出,直接输出结果即可,输出格式为一行. #include <iostream> #include &l ...

  4. Leetcode 102. Binary Tree Level Order Traversal(二叉树的层序遍历)

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  5. leetcode之二叉树的层序遍历

    1.题目描述 2.题目分析 二叉树的层序遍历主要算法思想是使用 队列这一数据结构实现,这个数据结构多应用在和 图相关的算法.例如图的广度优先遍历就可以使用队列的方法实现.本题的关键在于如何识别出一层已 ...

  6. LeetCode 102. 二叉树的层序遍历 | Python

    102. 二叉树的层序遍历 题目来源:https://leetcode-cn.com/problems/binary-tree-level-order-traversal 题目 给你一个二叉树,请你返 ...

  7. 刷题-力扣-107. 二叉树的层序遍历 II

    107. 二叉树的层序遍历 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-level-order-tr ...

  8. 五三想休息,今天还学习,图解二叉树的层序遍历BFS(广度优先)模板,附面试题题解

    壹 ❀ 引 我在从JS执行栈角度图解递归以及二叉树的前.中.后遍历的底层差异一文中,从一个最基本的数组遍历引出递归,在掌握递归的书写规则后,又从JS执行栈角度解释了二叉树三种深度优先(前序.中序后序) ...

  9. 剑指offer从上往下打印二叉树 、leetcode102. Binary Tree Level Order Traversal(即剑指把二叉树打印成多行、层序打印)、107. Binary Tree Level Order Traversal II 、103. Binary Tree Zigzag Level Order Traversal(剑指之字型打印)

    从上往下打印二叉树这个是不分行的,用一个队列就可以实现 class Solution { public: vector<int> PrintFromTopToBottom(TreeNode ...

随机推荐

  1. 使用XCopy发布网页

    链接:https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument113245 In this lesson, yo ...

  2. VS2010开发环境最佳字体及配色[转]

    从地址:http://www.dev-club.net/xiangxixinxi/42010072906150537/201103010518006.html 获取的,整理如下: 环境:VS2010字 ...

  3. CSS hack 和 IE浏览器条件判断 集中汇总

    (从死了一次又一次终于挂掉的百度空间中抢救出来的,发表日期 2014-08-16) 未完待续 css hack ie 浏览器判断语句 360大多数网页的各浏览器兼容方法: <!DOCTYPE h ...

  4. wikioi 1083 Cantor表

    题目描述 Description 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - 2/1 2/ ...

  5. 推荐第三方Oracle客户端查询工具

    1.SqlDbx 官方地址:http://www.sqldbx.com/personal_edition.htm 2.devart http://www.devart.com/dbforge/orac ...

  6. Keil MDK AGDI Drivers, ULink, JLink, ST-Link, NuLink, JTAGjet

    AGDI Drivers AGDI is an Application Program Interface (API) third-party developers can use to create ...

  7. IIS配置(安装IIS、.Net、更改IIS Log目录位置)

    #安装IIS..NetFramework 3.5 Import-Module servermanager Get-WindowsFeature web-* | ? {$_.Name -ne " ...

  8. jackson 解析json问题

    1.json串中有key为A,但指定转换的mybean中未定义属性A,会抛异常.处理:mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, fals ...

  9. Codeforces Round #335 (Div. 2) A. Magic Spheres 水题

    A. Magic Spheres Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.codeforces.com/contest/606/ ...

  10. C语言程序设计基础

    C语言程序设计基础 目录 C语言 C语言基础 C语言编程注意 C语言 C语言基础 C语言编程注意 0<9<9和0<9&&9<9是不同的 数组的声明和定义 con ...