C语言中数据结构问题

img

为什么答案选B,D选项最后一个位置插入结点,难道不应该也要遍历一遍链表不也和长度有关

选B是因为删除最后一个节点的话,必须遍历链表,才能找到最后一个节点的前一个节点,并将其设置为r
D是不需要遍历的,因为有尾节点指针r,直接将 r->next指向新节点, 并且将新节点设置为r即可

存在尾指针,插入时不需要遍历,直接尾指针指向插入的节点,然后更新尾指针