单链表尾插法
if (*library != NULL){
tail->next = book;
book->next = NULL;
}
else
{
*library = book;
book->next = NULL;
}
tail = book;
这一段什么意思,为什么不能直接 tail->next = NULL
这段代码是在实现单链表的尾插法插入节点。其中的逻辑是判断链表是否为空,如果不为空,则将新节点(book)链接到链表的尾部;如果链表为空,则将新节点作为链表的头节点(*library)。
tail->next = book 是将原链表的尾节点(tail)的next指针指向新节点(book),这样就将新节点插入到了链表的尾部。而 tail = book 是将尾节点指针更新为新节点,以便下一次插入操作时可以正确找到链表的尾部。
至于为什么不能直接 tail->next = NULL,是因为这样会断开原链表的连接,导致链表丢失。在尾插法中,我们需要保持链表的完整性,所以需要将新节点与原链表的尾节点进行连接。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页:
[1]