您无法对链表(单向或双向)进行二分查找,因为没有办法在中间位置上停留,除非从一端遍历了一半的列表。可能有一种多级跳跃列表可以实现这一点,但我认为这只是用更复杂的结构模拟二叉树。按顺序排列的链表搜索、插入和删除通常是O(n)(实际插入/删除本身是O(1),但您仍然需要首先查找插入或删除点)。或者,平衡二叉树的搜索、插入和删除都是O(log n)(这些操作均与树的高度成比例)。