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

C++单链表push后display函数漏输出最后一个元素问题排查

单链表display函数缺失尾节点问题解决方案

问题根源

display函数的循环判断逻辑错误,当前使用的while (tmp->next != NULL)条件会跳过最后一个尾节点:尾节点的next指针固定为NULL,无法进入循环,因此不会被打印输出。

修复方案

直接修改循环条件即可,遍历判断条件从判断当前节点的下一个节点是否为空,改为判断当前节点本身是否为空,确保所有节点都能被遍历到:

void linked_list::display() {
    if (head == NULL) {
        cout << "Empty list" << endl;
    }
    else {
        node *tmp = head;
        // 循环条件修改为判断当前节点是否为空
        while (tmp != NULL) {
            cout << tmp->data << " ";
            tmp = tmp->next;
        }
        cout << endl;
    }
}

修改后遍历会覆盖从head到tail的所有节点,插入1、2、3、4后运行即可输出完整的1 2 3 4结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:06:00