Adjacency list has the upper hand over the adjacency matrix because of its efficiency. An adjacency list occupies less memory space than an adjacency matrix. In addition, it is easier to iterate over the edges in the adjacency list because the neighboring nodes for a given node can be accessed easily. Also, creating edges and nodes in a list is efficient compared to creating edges and nodes in a matrix.