在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。
A.
删除单链表中的第一个元素
B.
删除单链表中的最后一个元素
C.
在单链表第一个元素前插入一个新元素
D.
在单链表最后一个元素后插入一个新元素
链接:https://www.nowcoder.com/questionTerminal/95305648b4144e6aaba482dbfe7ce045?source=relative
来源:牛客网
A
头指针是指向第一个元素(结点)的指针。
当删除单链表中的第一个元素时只需要将头指针指向第二个元素,然后释放第一个元素储存空间申请的内存。与链表长度无关。
B
尾指针是指向最后一个元素(结点)的指针,与头指针类似。
当删除单链表中的最后一个元素时 由于不是双向链表,所以要从头指针开始,一直遍历直到倒数第二个元素,将倒数第二个元素(结点)指向NULL,释放原末端元素(结点)空间后,将尾指针等于新的末端元素(结点)。所以与链表长度有关。
C
在单链表第一个元素前插入一个新元素时,只需要把新的元素(结点)指向原来的第一个元素(结点),然后使头指针指向新的元素(结点)。与链表长度无关。
D
在单链表最后一个元素后插入一个新元素时,只需先将新结点指向NULL,然后将尾指针指向的原末端结点指向新的元素(结点),最后将尾指针指向新的元素(结点)。与链表长度无关。
复制代码