- 題目
從上到下按層打印二叉樹,同一層結點從左至右輸出。 每一層輸出一行。
- 按層序遍歷
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; */ class Solution { public: vector<vector<int> > Print(TreeNode* pRoot) { std::vector<std::vector<int>> res; if (pRoot==NULL) return res; std::queue<TreeNode*> q; q.push(pRoot); while(!q.empty()) { int length = q.size(); std::vector<int> temp; for (int i = 0; i < length; ++i) { TreeNode* now = q.front(); temp.push_back(now->val); q.pop(); if (now->left!=NULL) q.push(now->left); if (now->right!=NULL) q.push(now->right); } res.push_back(temp); } return res; } };