leetcode报错:member access within null pointer of type 'struct ListNode'

2023-11-07

背景:在编写判断单链表是否有环时,出现这错误,


错误出现原因 : 因为试图使用空指针
解决方法 :增加判断条件,排除对空指针的引用。(一定要注意,我一直以为我排除了所有空指针的情况,其实并没有)


下面是报错的样例程序:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool hasCycle(ListNode *head) {

    if (head == NULL || head->next ==NULL)
        return false;
    ListNode* slow = head;
    ListNode* fast = head;
    while (slow!=NULL && fast->next != NULL)
    {
        //if (slow == NULL || fast->next == NULL)
        //  return false;
        slow = slow->next;
        fast = fast->next->next;

        if (slow == fast)
            return true;
    }
        return false;
    }
};

下面是修正过后的正确样例,区别在于while中的判断条件,此时判断条件排除了所有的空指针情况

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool hasCycle(ListNode *head) {

    if (head == NULL || head->next ==NULL)
        return false;
    ListNode* slow = head;
    ListNode* fast = head;
    while (slow!=NULL && fast !=NULL &&fast->next != NULL)
    {
        //if (slow == NULL || fast->next == NULL)
        //  return false;
        slow = slow->next;
        fast = fast->next->next;

        if (slow == fast)
            return true;
    }
        return false;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leetcode报错:member access within null pointer of type 'struct ListNode' 的相关文章

随机推荐

  • CentOS基础命令总结

    ls 显示文件或目录 ls l 列出文件或目录的详细详细 ls a 列出当前目录下所有文件及目录 包括隐藏的 all mkdir 创建目录 mkdir p 创建目录 若无父目录 则创建p parent rmdir 删除空目录 cd 切换目录
  • 某多多,自动化测试之 Selenium 登录被检测,请使用开发者开放平台

    网络潮流之下 请正确使用自己的技术 技术无罪 请善用手中的技术 创造更美好的明天 请勿用于不道德 违法行为 原文title 移除Selenium中的 window navigator webdriver 原文链接 https www cnb
  • Python:计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数

    每日一题 文章目录 一 输入描述 二 输出描述 1 具体代码 2 格式化函数 题目 老师给学生们组织了一场考试 卷面总分为 100 分 每个学生的得分都是一个 0 到 100 的整数 如果得分至少是 60 分 则称为及格 如果得分至少为 8
  • 每日学术速递5.27

    CV 计算机视觉 ML 机器学习 RL 强化学习 NLP 自然语言处理 Subjects cs CV 1 Control A Video Controllable Text to Video Generation with Diffusio
  • 【批处理DOS-CMD命令-汇总和小结】-注册表编辑命令reg,如何用cmd命令打开注册表编辑器regedit

    一 打开注册表编辑器 1 1 在运行窗口中打开 首先用 win r 打开运行窗口 然后执行 regedit 打开注册表编辑器 1 2 在cmd窗口中打开 在cmd窗口中执行命令 regedit 也可打开 二 注册表编辑命令 2 1 查询re
  • 虚拟机iis服务器搭建过程,手把手教你配置一台Linux虚拟机

    手把手教你配置一台Linux虚拟机 前言 Linux distribution 越来越多 也越来越成熟 所以安装起来也是比较简单 但是要理解安装的每一个步骤还是需要对Linux的基础知识有一定的了解 不过不用很深入 如果很深入我也不会 这里
  • springboot单元测试问题解决 (空指针异常:NullPointerException 或者注入问题)

    在对springboot进行单元测试时 遇到了空指针异常 一般来说加一个注解就可以了 SpringBootTest classes xxApplication class 如果还遇到问题 可以考虑加 RunWith SpringJUnit4
  • ceph环境清理

    第一步 在 root ceph 目录下执行 第一个节点 ceph deploy purge ceph01 ceph02 ceph03 ceph04 ceph deploy purgedata ceph01 ceph02 ceph03 cep
  • python基础编程:python如何实现浪漫的烟花秀(附代码)

    不废话 直接上代码 import turtle screen turtle Screen pen turtle Turtle pen pensize 3 pen speed 10 screen bgcolor black def firew
  • Hyper-V-虚拟机一直显示 启动中 该怎么办呢?

    今天开着虚机 结果过了出去了一会儿 回来发现虚机自己停了 停了就停了 我再开一下呗 结果一直显示启动中 我q 等了半天不见动静 重启也不好用 怎么办呢 有一种方法 叫直接杀线程 1 用下面命令看一下那个服务正在开启 tasklist FI
  • maven安装教程(超详细图解)

    本篇超级详细案例图解教学 Maven安装教程 图片点击可放大仔细看 Maven安装教程 1 前提 Maven需要Java环境 所以首先需要安装JDK 本教程默认已安装JDK1 8 2 解压文件 将maven文件夹复制到磁盘目录 本教程以安装
  • JackSon

    前后端分离开发中常用到的数据交互方式就是json 本文主要讲解对jackson对json的相关操作 jackson 基础篇 1 引入依赖
  • 《Apache MINA 2.0 用户指南》第七章:事件处理器

    最近准备将Apache MINA 2 0 用户指南英文文档翻译给大家 但是我偶然一次百度 发现 Defonds 这位大牛已经翻译大部分文档 原文链接 http mina apache org mina project userguide c
  • [webpack问题]TypeError: __webpack_require__(...).context is not a function

    require context directory useSubdirectories regExp directory 表示检索的目录 useSubdirectories 表示是否检索子文件夹 regExp 匹配文件的正则表达式 一般是文
  • BeanCreationException异常,注入Bean异常

    org springframework beans factory BeanCreationException Error creating bean with name XXX 注入bean异常 出现这个异常就是找不到对应的JavaBea
  • mac改成类似微软键盘偏好设置

    以前我做过笔记 但是好像印象还不是很深刻 因为我自己还是忘记了 我又写了一篇 首先是蛋疼的切换输入法问题 中文输入法和英文输入法的问题真不习惯 切换输入法改正方法 进入系统偏好设置 键盘 快捷键 输入法 选择上一个输入法 勾选 发现右边 空
  • Java类和对象(重点详解)

    类和对象 类和对象的关系 类的介绍 类变量 静态变量 public private 一些建议和小结 写在最后的话 这段时间博主学习了一些Java中类和对象的知识 今天我们就来聊聊Java中的类和对象 类和对象的关系 类其实就是一个模板 比如
  • oracle重复数据保留需要的一条数据

    由于功能开发进度的问题 人员录入的时候仅能够多次录入 不能够录入之后直接以该数据未蓝本引入导致多部门的时候必须多次创建冗余的数据 且由于数据录入的不规范 录入了许多相同的数据 特别是同单位同部门的数据 故需要处理此类数据 因此需要对此类重复
  • Unity --- 文本输入框的使用

    文本输入框有两个版本 一个是旧版的文本输入框 一个是新版的输入字段 这里选择旧版 其实旧版和新版的唯一区别就是text组件有些不同 其它的没啥不同 上面这两张图就是文本输入框中最重要的 input field 输入区域 组件的参数了 上面这
  • leetcode报错:member access within null pointer of type 'struct ListNode'

    背景 在编写判断单链表是否有环时 出现这错误 错误出现原因 错误出现原因 color Red text 38169 35823 20986 29616 21407 22240 因为试图使用空指针 解决方法 解决方法 color Red te