/* 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> v; if(root == NULL){ //没有该判断,会出现段错误 return v; } queue<TreeNode*> q; q.push(root); while(!q.empty()){ TreeNode* temp; temp = q.front(); q.pop(); v.push_back(temp->val); if(temp->left != NULL){ q.push(temp->left); } if(temp->right != NULL){ q.push(temp->right); } } return v; } };
原文:https://www.cnblogs.com/fzuhyj/p/10767699.html