剑指offer-面试题32-从上到下打印二叉树-二叉树遍历

Posted buaazhhx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-面试题32-从上到下打印二叉树-二叉树遍历相关的知识,希望对你有一定的参考价值。

/*
题目:
	按层自上向下打印二叉树。
*/
/*
思路:
	使用队列,将节点压入队列中,再弹出来,压入其左右子节点,循环,直到栈为空。
*/
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<stdio.h>
#include<vector>
#include<stack>
#include<queue>

using namespace std;

struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};

vector<int> PrintFromTopToBottom(TreeNode* root){
    vector<int> sequence;
    if(root == nullptr) return sequence;

    deque<TreeNode*> myQueue;
    myQueue.push_back(root);
    TreeNode *temp;

    while(!myQueue.empty()){
       temp = myQueue.front();
       myQueue.pop_front();
       sequence.push_back(temp->val);
       if(temp->left != nullptr){
            myQueue.push_back(temp->left);
       }
       if(temp->right != nullptr){
            myQueue.push_back(temp->right);
       }
    }
    return sequence;
}

int main(){
    TreeNode* node1 = new TreeNode(1);
    TreeNode* node2 = new TreeNode(2);
    TreeNode* node3 = new TreeNode(3);
    node1->left = node2;
    node2->right = node3;
    vector<int> m = PrintFromTopToBottom(node1);
    for(int i = 0; i < m.size(); i++){
        cout<<m[i]<<" ";
    }
}

    

以上是关于剑指offer-面试题32-从上到下打印二叉树-二叉树遍历的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer——面试题32:从上到下打印二叉树

剑指offer-面试题32-从上到下打印二叉树-二叉树遍历

剑指offer-面试题32-分行从上到下打印二叉树-二叉树遍历

二叉树层次遍历(剑指Offer面试题32:从上到下打印二叉树)

LeetCode | 面试题32 - II. 从上到下打印二叉树 II剑指OfferPython

乱序版 ● 剑指offer每日算法题打卡题解—— 从上到下打印二叉树(题号32)