CyberChu 2022-09-18 22:31 采纳率: 0%
浏览 58
已结题

链表的长度为0,那么头节点为NULL吗 ?

链表的长度为0,那么头节点为NULL吗 ?
在写链表的时候,遇到一个问题。
我让链表长度为0,然后在任意位置插入一个值
结果没有插入进去,说明头指针是NULL
在插入函数中有这样的代码来判断是否能插入。
之前创建链表,默认头节点的指针域为NULL,但数据域没管
所以链表长度为0,头节点到底是不是NULL?(求靓仔美女们给我一颗定心丸,蟹蟹)

bool insert_list(PNODE pHead, int pos, int val)
{
    int i = 0;
    PNODE tmp = pHead;
//    if(NULL == tmp->pNext)
    //    return false;
    while(NULL != tmp && i<pos-1)
    {
        tmp = tmp->pNext;
        ++i;
    }
    if(NULL == tmp || i > pos-1)**//在这里判断**
    {
        return false;
    }
    PNODE pNew = (PNODE)malloc(sizeof(NODE));
    if(NULL == pNew)
    {
        printf("链表创建失败!");
        exit(-1);
    }
    pNew->data = val;
    pNew->pNext = tmp->pNext;
    tmp->pNext = pNew;
    return true;
} 

  • 写回答

1条回答 默认 最新

  • CyberChu 2022-09-18 22:57
    关注

    知道为什么了,在判断条件前面还有个循环,
    while循环还是执行了,tmp指向了NULL,所以后面if里的代码能被执行
    结论是:头节点被创建出来了就不会是NULL。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月18日

悬赏问题

  • ¥15 您好 这个API接口该怎么弄 网站搭建好了 API也有 现在就不知道该怎么填写API 不知道怎么用
  • ¥88 用uniapp写一个多端的程序,用到高德地图,用高德的JSAPI吗?
  • ¥20 关于#c++#的问题:水果店管理系统
  • ¥30 dbLinq最新版linq sqlite
  • ¥20 对D盘进行分盘之前没有将visual studio2022卸载掉,现在该如何下载回来
  • ¥15 完成虚拟机环境配置,还有安装kettle
  • ¥15 2024年全国大学生数据分析大赛A题:直播带货与电商产品的大数据分析 问题5. 请设计一份优惠券的投放策略,需要考虑优惠券的数量、优惠券的金额、投放时间段和投放商品种类等因素。求具体的python代码
  • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗
  • ¥15 用matlab写代码
  • ¥30 motoradmin系统的多对多配置