从上往下打印二叉树

来源:互联网 发布:mac涂层脱落截止日期 编辑:程序博客网 时间:2024/05/21 13:56

题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:用一个数组保存打印节点的顺序,一个数组保存打印节点的值。

/*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;        vector<TreeNode*> array;        if (root == NULL) return res;        array.push_back(root);        size_t p = 0;        while (p < array.size()) {            //确定打印顺序            if (array[p]->left != NULL) array.push_back(array[p]->left);            if (array[p]->right != NULL) array.push_back(array[p]->right);            //打印节点            res.push_back(array[p]->val);            p++;        }        return res;    }};