剑指Offer-从上往下打印二叉树

题目描述 从上往下打印二叉树

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

解题思路

  • 广度优先搜索
  • 每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出来为止。

代码

class Solution {
public:
    vector PrintFromTopToBottom(TreeNode* root) {
        vector nums;
        queue q;
        if(!root) return nums;
        q.push(root);
        while(!q.empty()){
            for(int i=0;ival);
                q.pop();
                if(t->left) q.push(t->left);
                if(t->right) q.push(t->right);
            }
        }
        return nums;
    }
};

你可能感兴趣的:(剑指Offer-从上往下打印二叉树)