剑指offer 从上到下打印二叉树
思路:采用隊列思想,一邊進一邊出,先進先出,選擇雙向隊列deque(其實queue已經(jīng)夠了,沒必要用deque)
/*
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) {
? ? ? ? deque<TreeNode*> temp;
? ? ? ? vector<int> res;
? ? ? ? if(NULL==root)
? ? ? ? ? ? return res;
? ? ? ? temp.push_back(root);
? ? ? ? while(!temp.empty())
? ? ? ? {
? ? ? ? ? ? TreeNode* t=temp.front();
? ? ? ? ? ? temp.pop_front();
? ? ? ? ? ? res.push_back(t->val);
? ? ? ? ? ? if(t->left!=NULL)
? ? ? ? ? ? ? ? temp.push_back(t->left);
? ? ? ? ? ? if(t->right!=NULL)
? ? ? ? ? ? ? ? temp.push_back(t->right);
? ? ? ? }
? ? ? ? return res;
? ? }
};
總結
以上是生活随笔為你收集整理的剑指offer 从上到下打印二叉树的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer-求二叉树深度
- 下一篇: 剑指offer 求第n个丑数