从上往下打印二叉树
从上往下打印二叉树
https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701?tpId=13&tqId=11175&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
思路:巧妙利用队列先进先出的性质
/* 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> ans; if(root==NULL) return ans; queue<TreeNode*> q; q.push(root); while(!q.empty()) { TreeNode* fr = q.front(); ans.push_back(fr->val); if(fr->left) { q.push(fr->left); } if(fr->right) { q.push(fr->right); } q.pop(); } return ans; } };