从上往下打印出二叉树的每个节点,同层节点从左至右打印
// test20.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>
#include<queue>
#include<stack>using namespace std;struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}
};
class Solution {
public:vector<int> PrintFromTopToBottom(TreeNode *root) {vector<int> vec;queue<TreeNode* > qu;if (root == NULL)return vec;qu.push(root);while (!qu.empty()){//cout << qu.front()->val << " ";vec.push_back(qu.front()->val);if (qu.front()->left != NULL) qu.push(qu.front()->left);if (qu.front()->right != NULL) qu.push(qu.front()->right);qu.pop();}return vec;}void preCreate(TreeNode* &T){int num;cin >> num;if (num == 0) T = NULL;else{T = new TreeNode(num);preCreate(T->left);preCreate(T->right);}}void preOrder(TreeNode* T){if (T == NULL) return; else{cout << T->val << " ";preOrder(T->left);preOrder(T->right);}}
};
int main()
{Solution so;TreeNode *T1;TreeNode *T2;vector<int> vec;cout << "创建T1:" << endl;so.preCreate(T1);cout << "创建T1成功!" << endl;cout << "T1的前序遍历:" << endl;so.preOrder(T1);cout << endl;vec = so.PrintFromTopToBottom(T1);cout << "层次遍历的结果是:" << endl;for (auto it = vec.begin();it != vec.end();it++)cout << *it << " ";cout << endl;return 0;
}
转载于:https://www.cnblogs.com/wdan2016/p/5991142.html
从上往下打印出二叉树的每个节点,同层节点从左至右打印相关推荐
- java 打印一棵树_java编程题之从上往下打印出二叉树
本文实例为大家分享了java从上往下打印出二叉树的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; import java.util.Stack; /** * ...
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
从上往下打印出二叉树的每个节点,同层节点从左至右打印. 题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印. 分析:借助一个队列,先将根结点的指针入队列,出来时访问它,然后将它的左右孩子带到队 ...
- 《剑指Offer》 从上往下打印出二叉树
题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路: 其实就是层序遍历,设置一个TreeNode*类型的队列s,用来保存二叉树层序遍历的节点,因为队列是先进先出,所以很好地控制了 ...
- 单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右、从右往左、从上往下或者从下往上。例如下面的迷阵中包含quot等单词。
单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右.从右往左.从上往下或者从下往上.例如下面的迷阵中包含quot等单词. rmhlzxceuq bxmichelle mnn ...
- java实现从左到右打印二叉树
java实现从左到右打印二叉树 对于二叉树相信大家都很熟悉了,作为一个程序员都是学过数据结构的.对于二叉树的遍历大家应该都不陌生吧!我们都试过前序遍历,中序遍历,后续遍历.但是我们很少去从左到右打印一 ...
- printf从右向左计算,从左向右打印
printf从右向左计算,从左向右打印 1.第一个例子 #include <stdio.h>int main() {int x = 0;printf("%d,%d\n" ...
- leetcode刷题之 树(14)-递归:找出二叉树中第二小的节点
[LeetCode] Second Minimum Node In a Binary Tree 二叉树中第二小的结点 Given a non-empty special binary tree con ...
- ROS笔记之使用C++打印出当前运行的所有ROS节点
代码 ros::V_string v_nodes;ros::master::getNodes(v_nodes);for (auto elem : v_nodes) {cout << ele ...
- 剑指offer:面试题32 - I. 从上到下打印二叉树
题目:从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7 ...
最新文章
- 【opencv】(7) 图像匹配、直方图、图像均衡化
- sharepoint 备份还原
- Nginx模块开发中使用PCRE正则表达式匹配
- 给数据库字段增加前缀
- html页面导出,HTML页面导出execl表格
- 启动mysql失败:net start mysql服务名无效
- WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信
- Pentium 4处理器架构/微架构/流水线 (12) - 微架构框图
- mysql创建表时表明加单引号_python在MySQL表名周围插入单引号(‘)
- 新概念51单片机c语言教程doc,新概念51单片机C语言教程实例代码.doc
- 初学Python目前我认为较容易理解的求100以内质数(素数)的方法。
- 【数学建模】【lingo】lingo的基本操作
- 分解gif动图如何操作?手把手教你动图分解方法
- 深度学习之tensorflow:tensorflow-cpu;win10+gtx1050ti+tensorflow-gpu搭建过程以及问题解决
- 需求开发应用部署“一条龙”,平安云如何加速容器场景落地
- 【产品】建立墨菲定律思维模式
- STM32系列(HAL库)——F103C8T6点亮1.44寸TFT-LCD彩屏
- Riedel 水晶杯:葡萄酒终极发烧设备
- CF1647D Madoka and the Best School in Russia(数论,dp,离散化技巧)
- MTK657X智能机平台系统文件夹文件详解