Big-O for while循环?

时间:2015-09-26 20:06:20

标签: linked-list big-o

如何解决包含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;
}

1 个答案:

答案 0 :(得分:2)

正如您所说,遍历链表需要O(N),因为您需要遍历每个节点一次。

赋值运算符是O(1),因为每次只需要执行一次。