在面试中,我被问及如何在不遍历链表的情况下计算链表中节点的数量?是否有任何方法可以实现这一点?
在面试中,我被问及如何在不遍历链表的情况下计算链表中节点的数量?是否有任何方法可以实现这一点?
我能想到的唯一方法是添加一个节点数计数器,每次调用add或者insert方法时它就会自增,而在调用delete方法时则自减。由于这是一个链表,你不能假设所有节点都占据同一块内存(实际上,这种情况高度不太可能发生),所以你不能对内存的占用有任何的保证。
这些其他人说的完全正确。在查看它们之前,你怎么知道某个东西中有多少项?
你需要维护一个计数,并在插入/删除时进行增量/减量。这是(最|唯一)可靠的方法。