剑指offer-----22、从上往下打印树

版权声明: https://blog.csdn.net/zl6481033/article/details/91354956

1、题目描述

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

2、分析

        其实这道题就是树的层序遍历,层序遍历使用队列来实现。

3、代码

/*
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> res;
        if(root==NULL) return res;
        std::deque<TreeNode*> nodedeque;
        nodedeque.push_back(root);
        while(!nodedeque.empty()){
            TreeNode* temp=nodedeque.front();
            res.push_back(nodedeque.front()->val);
            nodedeque.pop_front();
            if(temp->left!=NULL)
                  nodedeque.push_back(temp->left);
            if(temp->right!=NULL)
                  nodedeque.push_back(temp->right); 
        }
        return res;
    }
};

4、相关知识点

        队列的使用。

猜你喜欢

转载自blog.csdn.net/zl6481033/article/details/91354956