题解 | #JZ32 从上往下打印二叉树#

从上往下打印二叉树

http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701

//使用队列辅助
/*
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) {
        vector<int> ret;
        if (!root) return ret;
        
        queue<TreeNode *> queue;
        queue.push(root);
        
        while (queue.size()) {
            TreeNode *node = queue.front();    //去除队顶节点,即当前层未打印的最左边节点
            queue.pop();
            
            //打印节点值
            ret.push_back(node->val);
            
            //左右子节点分别入队
            if (node->left) queue.push(node->left);
            if (node->right) queue.push(node->right);
        }
        
        return ret;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务