c++ - 运行时错误:“TreeNode”类型的空指针内的成员访问
问题描述
这是一个leetcode问题,我必须找出二叉树的右侧视图;
代码如下
错误:第 22 行:字符 37:运行时错误:“TreeNode”类型的空指针内的成员访问;(解决方案.CPP)
我无法找出在哪种情况下我正在尝试访问 NULL 的成员
class Solution {
public:
vector<int> rightSideView(TreeNode* root) {
vector<int> v;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
int count = q.size();
for(int i=count;i>0;i--){
if(i==1){
v.push_back(q.front()->val);//getting error in this line
}
if(q.front()->left){
q.push(q.front()->left);
}
if(q.front()->right){
q.push(q.front()->right);
}
q.pop();
}
}
return v;
}
};
解决方案
我认为在这个问题中root
也可以为空,所以当它root
为空时,它会给出这个错误。这是我认为的情况。
用这个
class Solution {
public:
vector<int> rightSideView(TreeNode* root) {
vector<int> v;
if(root == null) return v;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
int count = q.size();
for(int i=count;i>0;i--){
if(i==1){
v.push_back(q.front()->val);//getting error in this line
}
if(q.front()->left){
q.push(q.front()->left);
}
if(q.front()->right){
q.push(q.front()->right);
}
q.pop();
}
}
return v;
}
};
推荐阅读
- django - /admin/attempt/add_model/add/ 处的类型错误
- python - 安装需求时使用 heroku 和 docker 部署应用程序会引发错误
- mysql - 如何将mysql数据库中的空列导入vb.net中的文本框
- c# - 将消息重定向到相应的工作线程/任务
- css - 边框顶部剪切标题中垂直打印的文本
- python - 将 pyspark DataFrame 的列的类型从 BigInt 转换为 Int
- javascript - 这种语法在反应“调度:调度”中意味着什么
" - powershell - Powershell 运行空间迭代
- prometheus - 如何在prometheus + grafana中显示零而不是最后一个值
- php - 检查重复行并打印这些行 PHP