/* 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> a; queue<TreeNode *> tree; if(root==NULL)return a; TreeNode* r; tree.push(root); while(tree.size()){ r=tree.front(); a.push_back(r->val); if(r->left!=NULL){ tree.push(r->left); } if(r->right!=NULL){ tree.push(r->right); } tree.pop(); } return a; } };
思路是:将这个树的根结点放到队列中,然后出队列,将其左孩子和右孩子分别放到队列中,然后再重复这样的工作,每出队列一个,就将这个队列的左孩子和右孩子进队列。依次循环。直到遍历完所有的结点。
原文地址:https://www.cnblogs.com/littleswan/p/11663564.html
时间: 2024-09-29 02:25:36