You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断C++中IntLinkedList类实现的链表是否为空?

实现IntLinkedList的isEmpty函数判断链表为空

嘿,我来帮你搞定这个链表判空的函数实现!首先咱们先理清楚链表为空的核心判断逻辑:当链表的头指针指向NULL时,链表就是空的——毕竟你的构造函数已经把head初始化为NULL了,空链表状态下这个指针不会指向任何节点。

按照现有函数签名的实现

你当前定义的isEmpty函数带有LinkedListNode*参数,那实现起来很直接,只需要判断传入的指针是否为NULL即可:

bool IntLinkedList::isEmpty(LinkedListNode* node) {
    return node == NULL;
}

不过这里有个小问题:LinkedListNode是类的私有结构体,head也是私有成员,外部代码没办法直接获取head指针来传给这个函数。所以这个版本更适合作为类的内部辅助函数来用,比如在AppendNode这类成员函数里调用isEmpty(head)来判断是否是第一个节点。

更合理的公共接口实现

如果要把isEmpty作为对外的公共接口,更符合封装原则的做法是把它改成无参函数,直接访问类内部的head指针:

第一步:修改类声明中的函数签名

把原有的bool isEmpty(LinkedListNode*);改成:

bool isEmpty();

第二步:实现无参版本的isEmpty

bool IntLinkedList::isEmpty() {
    // 直接判断私有成员head是否为NULL,空链表时head保持构造时的NULL状态
    return head == NULL;
}

这样外部代码只需要创建IntLinkedList对象,调用obj.isEmpty()就能直接判断链表是否为空,完全不用关心内部的节点结构和头指针细节,更符合面向对象的封装思想。

内容的提问来源于stack exchange,提问作者maliks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:15:31