小杨采用如下双链表结构保存他喜欢的歌曲列表:
1 struct dl_node { 2 string song; 3 dl_node* next; 4 dl_node* prev; 5 }
小杨想在头指针为 head 的双链表中查找他喜欢的某首歌曲,采用如下查询函数,该操作的时间复杂度为( )。
1 dl_node* search(dl_node* head, string my_song) { 2 dl_node* temp = head; 3 while (temp != nullptr) { 4 if (temp->song == my_song) 5 return temp; 6 temp = temp->next; 7 } 8 return nullptr; 9 }
O(1)
O(n)
O(logn)
O(n2)