迭代

vector<vector<int>> levelOrder(TreeNode* root) {

vector<vector<int>> ret;

if(root == nullptr) return ret;

queue<TreeNode*> cur,nxt;

TreeNode* p;

cur.push(root);

vector<int> level;

while(!cur.empty()){

while(!cur.empty()){

p = cur.front();

cur.pop();

level.push_back(p->val);

if(p->left) nxt.push(p->left);

if(p->right) nxt.push(p->right);

}

ret.push_back(level);

level.clear();

swap(cur,nxt);

}

return ret;

}

Last updated

Was this helpful?