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

链表的长度为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 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据