剑指offer系列源码-从上往下打印二叉树

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

#include <iostream>
#include<stdio.h>
#include<deque>
using namespace std;
struct BinaryTreeNode{
    int value;
    BinaryTreeNode* left;
    BinaryTreeNode* right;
};
void printFromTopToBottom(BinaryTreeNode* root){
    if(!root){
        return;
    }
    //双向队列
    deque<BinaryTreeNode*> dequeTreeNode ;
    dequeTreeNode.push_back(root);
    while(dequeTreeNode.size()){
        BinaryTreeNode* pNode = dequeTreeNode.front();
        dequeTreeNode.pop_front();
        printf("%d ",pNode->value);
        if(pNode->left){
            dequeTreeNode.push_back(pNode->left);
        }
        if(pNode->right){
            dequeTreeNode.push_back(pNode->right);
        }
    }

}
int main(){
    return 0;
}
时间: 2024-10-07 12:32:35

剑指offer系列源码-从上往下打印二叉树的相关文章

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

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 题解:LinkedList模拟队列 1 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { 2 ArrayList<Integer> list = new ArrayList<>(); 3 if (root == null) { 4 return list; 5 } 6 LinkedList<TreeNode> que

剑指offer(三十七)之从上往下打印二叉树

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路分析:使用两个LIST,一个存放节点,一个存放值.先将根节点加入到LIST中,然后遍历LIST中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到LIST中来 <span style="font-family:SimSun;font-size:18px;color:#3333ff;">import java.util.ArrayList; /** public class TreeNode {

剑指offer系列源码--二维数组中的查找

题目1384:二维数组中的查找 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:14827 解决:2888 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数. 输入的第二行包括一个整数t(1<=t<=1

剑指offer系列源码-翻转单词顺序

题目1361:翻转单词顺序 时间限制:2 秒内存限制:32 兆特殊判题:否提交:1935解决:572 题目描述: JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"student. a am I".后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是"I am a student.".Cat对一一的翻转这些单词顺序可不在行,

剑指offer系列源码-扑克牌顺子

题目1355:扑克牌顺子 时间限制:2 秒内存限制:32 兆特殊判题:否提交:1415解决:398 题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!"红心A,黑桃3,小王,大王,方片5","Oh My God!"不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A

剑指offer系列源码-丑数

题目1214:丑数 时间限制:1 秒内存限制:32 兆特殊判题:否提交:1700解决:756 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 输入: 输入包括一个整数N(1<=N<=1500). 输出: 可能有多组测试数据,对于每组数据, 输出第N个丑数. 样例输入: 3 样例输出: 3 #include <iostream> #inclu

剑指offer系列源码-二叉树中和为某一值的路径

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. #include <iostream> #include<stdio.h> #include<vector> using namespace std; struct BinaryTreeNode{ int value; BinaryTreeNode* left; BinaryTreeNode* right; }; //递归判断路劲

剑指offer系列源码-二叉树的镜像

输入一个二叉树,输出其镜像. 解法:交换所有非叶子结点的左右结点. #include<stdio.h> #include<iostream> using namespace std; struct BinaryTreeNode{ int value; BinaryTreeNode* left; BinaryTreeNode* right; }; //树的镜像 void reseverBinaryTree(BinaryTreeNode* root){ if(root==NULL||(

剑指offer系列源码-左旋转字符串

题目1362:左旋转字符串(Move!Move!!Move!!!) 时间限制:2 秒内存限制:32 兆特殊判题:否提交:1577解决:669 题目描述: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abcXYZdef",要求输出循环左移3位后的结果,即"XYZdefabc".是不是很简单?OK,搞定它! 输入: 多组测试数据,每