如何解决包含while循环的问题的Big-O,该循环遍历节点并增加长度,只要它不等于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;
}
答案 0 :(得分:2)
正如您所说,遍历链表需要O(N),因为您需要遍历每个节点一次。
赋值运算符是O(1),因为每次只需要执行一次。