剑指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:从上到下打印二叉树)