從上往下列印出二元樹的每個節點,同層節點從左至右列印。
對本題的理解是層序遍歷二元樹。
用佇列來儲存二元樹的節點,先將樹的根節點插入佇列
當佇列不為空時一直執行一下操作:
從佇列中取出節點,將節點的值存入vector
若左子樹不為空,將左子樹插入佇列
若右子樹不為空,將右子樹插入佇列
class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int>result;
if (!root)return result;
queue<TreeNode*>q;
TreeNode* tmp;
q.push(root);
while (!q.empty())
{
tmp = q.front();
q.pop();
result.push_back(tmp->val);
if (tmp->left)
q.push(tmp->left);
if (tmp->right)
q.push(tmp->right);
}
return result;
}
};