二叉树层序遍历,给今天的肝画上句号吧
两天刷了20题,早点来牛客就好了,走了好多弯路啊/(ㄒoㄒ)/~~
vector PrintFromTopToBottom(TreeNode* root) {
//层序遍历?
vector res;
if(!root)
return res;
queue q;
q.push(root);
while(!q.empty()){
TreeNode* n = q.front();
q.pop();
res.push_back(n->val);
if(n->left){
q.push(n->left);
}
if(n->right){
q.push(n->right);
}
}
return res;
}
调试除了很多细节问题:
1.忘记先判断空树并返回;
2.在while循环里,新建的树节点n忘记用了,底下压入左右子树都习惯性写成了root->left和root->right.
不过,这次倒是没有忘记q.pop()这一步,但是又犯了其他更严重的错误
难道菜鸡的错误是守恒的吗
日常许愿,求求了给我个面试的机会吧/(ㄒoㄒ)/~~
两天刷了20题,早点来牛客就好了,走了好多弯路啊/(ㄒoㄒ)/~~
vector
//层序遍历?
vector
if(!root)
return res;
queue
q.push(root);
while(!q.empty()){
TreeNode* n = q.front();
q.pop();
res.push_back(n->val);
if(n->left){
q.push(n->left);
}
if(n->right){
q.push(n->right);
}
}
return res;
}
调试除了很多细节问题:
1.忘记先判断空树并返回;
2.在while循环里,新建的树节点n忘记用了,底下压入左右子树都习惯性写成了root->left和root->right.
不过,这次倒是没有忘记q.pop()这一步,但是又犯了其他更严重的错误
难道菜鸡的错误是守恒的吗
日常许愿,求求了给我个面试的机会吧/(ㄒoㄒ)/~~
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享