c++ - 检查链表的结尾

标签 c++ linked-list

我有一个简单的链表结构,我想对其进行迭代。

struct Node{
    int data;
    struct Node *next;
};

假设我在没有初始化next的情况下创建了一个数据为1的节点。

Node* test3 = new Node;
test3->data = 1;

由于next不是NULL,所以我在迭代这个链表的时候不能做限制条件。
我认为没有任何方法可以检测内存是否已分配。
我该如何解决这个问题?

最佳答案

当您使用 C++ 时,您也可以向结构添加构造函数。这样更安全,因为您不会忘记初始化下一个指针:

struct Node{
    int data;
    struct Node *next;
    Node() : next(0) {}
};

当您创建一个新节点时,next 会自动初始化为NULL == 0。

关于c++ - 检查链表的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928784/

相关文章:

c++ - 如何在vscode中设置 "include path"来编译c++

c++ - 排序后插入链表

c++ - 为什么 cv::Mat 的 RAM 和硬盘大小总是有 4.5 倍的差异?

c++ - 将 IPv4/IPv6 地址和端口设置为 sockaddr_storage 结构

c++ - 这个 GNU 对三元运算符的扩展有多广泛?

c++ - 在移出边界之前停止 directory_iterator

c - 如何使用函数返回两个不同的链表?

python - python递归中的链表

ruby - 在 Ruby 中实现链表

java - 使用回溯算法测试鼠标是否可以逃离矩形迷宫