题目描述
从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。
样例
Input: [8, 12, 2, null, null, 6, null, 4, null, null, null]
Output:[8, 12, 2, 6, 4]
解题思路
-
描述
就是树的层次遍历
-
实现代码:
vector<int> printFromTopToBottom(TreeNode* root) { vector<int> res; if(!root) // root为空,直接返回res { return res; } queue<TreeNode*> q; TreeNode* tmp; q.push(root); while(!q.empty()) // 队列非空 { tmp = q.front(); q.pop(); res.push_back(tmp->val); if(tmp != NULL) { if(tmp->left) // 如果节点非空,则入队 { q.push(tmp->left); } if(tmp->right) { q.push(tmp->right); } } } return res; }