我如何解决这个问题的大o包含一个while循环,通过节点和增加长度,只要它不等于null?这是O(N)
吗,因为它经过N个节点?同时,while循环中的语句应该是O(1)
,对吗?
/**
*@param head the first node of the linked list
*@return the length of the linked list
*/
public static <E> int getLength(Node<E> head) {
int length = 0;
Node<E> node = head;
while (node!=null) {
length++;
node = node.next;
}
return length;
}
正如您所说,遍历链表需要O(N),因为您需要遍历每个节点一次。
赋值操作符是O(1),因为每次只需要执行一次。