从上到下按层打印二叉树,每层打印顺序从左到右

 1 class Solution{
 2 public :
 3 vector<int> PrintFromTopToBottom(TreeNode* root){
 4 vector<int> vec;
 5 queue<TreeNode*> Q;
 6 if(root==NULL) return vec;
 7 Q.push(root);
 8 while(!Q.empty())
 9 {
10 TreeNode* p = Q.front();
11 Q.pop();
12 vec.push_back(p->val);
13 if(p->left)
14 Q.push(p->left);
15 if(p->right)
16 Q.push(p->right);
17 }
18 return vec;
19 }
20 };

原文地址:https://www.cnblogs.com/VRGamer-006/p/8436908.html

时间: 2024-10-10 04:20:44

从上到下按层打印二叉树,每层打印顺序从左到右的相关文章

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

import java.util.ArrayList; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ import java.util.*; public class Solution { ArrayList<ArrayList<Integer> > Print

树5:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

分析:层次遍历的经典算法 import java.util.ArrayList; import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { ArrayList<ArrayList<Integer&g

从上到下打印二叉树,同节点的从左到右。

public class TreeNode(){ public int val; publicTreeNode Left; public TreeNode Right; public TreeNode(int x){ val=x } } 局部变量temp获取当前结点,queue获取此结点下的左右结点.循环遍历直到queue为空 原文地址:https://www.cnblogs.com/5598Code/p/12122980.html

按层打印二叉树--每行打印一层

一,问题介绍 给定一棵二叉树,按照层序遍历的顺序打印二叉树.但是要求,每一行打印一层数据. 二,算法分析 借助二叉树的层序遍历来实现.但是需要额外两个变量.一个变量用来保存当前层 还未打印的结点个数,另一个变量保存下一层待打印的结点个数. 二叉树层序遍历参考:http://www.cnblogs.com/hapjin/p/5409921.html 层序打印参考: 1 public void printTree(BinaryNode<T> root){ 2 if(root == null) 3

【Java】 剑指offer(31)从上往下打印二叉树

本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 (一)从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印. (二)从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行. (三)请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 思路 (一)不分行从上往下打印二叉树:该题即为对二叉树的层

剑指Offer对答如流系列 - 从上往下打印二叉树

面试题32:从上往下打印二叉树 题目描述 树的结构定义如下: public class Node{ int e; Node left; Node right; Node(int x) { e = x; } } (一)不分行从上到下打印二叉树 从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印. 比如下面二叉树,输出顺序为 8 6 10 5 7 9 11 (二)分行从上到下打印二叉树 从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行. 比如下面二叉树,输出

AcWing&#160;45.&#160;之字形打印二叉树

地址 https://www.acwing.com/problem/content/description/43/ 题目描述请实现一个函数按照之字形顺序从上向下打印二叉树. 即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 样例 输入如下图所示二叉树[8, 12, 2, null, null, 6, 4, null, null, null, null] 8 / 12 2 / 6 4 输出:[[8], [2, 12], [6, 4]]

《剑指offer》第三十二题III:之字形打印二叉树

// 面试题32(三):之字形打印二叉树 // 题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺 // 序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印, // 其他行以此类推. #include <cstdio> #include "BinaryTree.h" #include <stack> void Print(BinaryTreeNode* pRoot) { //整体思路和前两道题很像,先进先出变后进先出 if

《剑指offer》:[61]按之字形顺序打印二叉树

题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三层再按照从左到右打印,其他行以此类推. 例如:按之字形顺序打印二叉树的结果如下图: 打印结果: 1 3,2 4,5,6,7 15,14,13,12,11,10,9,8 方案:利用两个栈.时间复杂度O(N)+辅助空间2*O(N). 具体方法:我们在打印某一结点时,把下一层的子结点保存到相应的栈里.如果当前打印的是奇数层(例如第一层,第三层...第2*n+1层),则先保存左子结点再保存右子