微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行时错误:“TreeNode”

如何解决运行时错误:“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;
    }
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。