zsjjsd 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条回答 默认 最新

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

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

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号