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

这个考察的是树的分层遍历;首先先得到树的根节点,然后将根节点的两个子节点从左到右输出,可以将树的所有节点存储在一个队列(先进先出)中,然后按照存储顺序打印出来:

code:

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) {

        queue<TreeNode*> Q;

        vector<int> result;

        if(root==NULL)

        {

            return result;

        }

        Q.push(root);

        while(!Q.empty())

        {

            TreeNode* p=Q.front();

            Q.pop();

            result.push_back(p->val);

            if(p->left!=NULL)

            {

                Q.push(p->left);

            }

            if(p->right!=NULL)

            {

                Q.push(p->right);

            }


        }

        return result;

    }

};

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。