從上往下列印出二叉樹的每個節點,同層節點從左至右列印,
對本題的理解是層序遍歷二叉樹,
用佇列來保存二叉樹的節點,先將樹的根節點插入佇列
當佇列不為空時一直執行一下操作:
從佇列中取出節點,將節點的值存入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;
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/99622.html
標籤:其他
下一篇:求訓練集的熵和資訊增益
