剑指offer——22.从上往下打印二叉树

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/N1neDing/article/details/83034084

题目描述:

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

解题思路:

广度优先搜索,BFS很多时候需要借助队列存储元素

本题使用一个队列,每次记录队列首部的元素值,然后将左右节点插入到队列尾部,这样就可以实现树的层次遍历了。

参考源码:

class Solution {
public:
    vector<int> PrintFromTopToBottom(TreeNode* root)
    {   
           vector<int> res;
           deque<TreeNode*> storage;
           if(root == NULL) return res;
           storage.push_back(root);
           while(storage.size())
           {
                   res.push_back(storage.front()->val);
                   if(storage.front()->left != NULL)
                   {
                           storage.push_back(storage.front()->left);
                   }
                   if(storage.front()->right != NULL)
                   {
                           storage.push_back(storage.front()->right);
                   }
                   storage.pop_front();
           }
           return res;
    }   
};

猜你喜欢

转载自blog.csdn.net/N1neDing/article/details/83034084
今日推荐