层序遍历-复制操作
class Solution
{
public:
vector<vector<int>> levelOrder(TreeNode *root)
{
vector<vector<int>> result;
vector<int> leve;
queue<TreeNode*> node_queue;
node_queue.push(root);
int nlevelcount = 0;
TreeNode* pCur = nullptr;
while (root && !node_queue.empty())
{
nlevelcount = node_queue.size();
for (size_t i = 0; i < nlevelcount; i++)
{
pCur = node_queue.front();
if (pCur->left)
node_queue.push(pCur->left);
if (pCur->right)
node_queue.push(pCur->right);
leve.push_back(pCur->val);
node_queue.pop();
}
result.push_back(leve);
leve.clear();
}
return result;
}
}
层序遍历-简单操作
vector<int> levelOrder(TreeNode *root)
{//层序遍历
vector<int> result;
queue<SNode*> q;
q.push(root);
SNode* pCur = nullptr;
while (root && !q.empty())
{
pCur = q.front();
if (pCur->left)
q.push(pCur->left);
if (pCur->pRight)
q.push(pCur->right);
q.pop();
result.push_back(pCur->val);
}
return result;
}