小编tie*_*lee的帖子

如何使用常量时间(O(1))计算链表的长度

我有一个函数来计算列表的长度.但这是线性时间.怎么能把它转换成恒定时间(O(1))

struct Node
{
    T data;
    Node *next;
};
Run Code Online (Sandbox Code Playgroud)

Node *front; Node *back;

这是计算链表长度的功能

int length() const
{
    Node *p = front;
    int n = 0;

    while (p != nullptr)
    {
        n++;
        p = p->next;
    }

    return n;
}
Run Code Online (Sandbox Code Playgroud)

c++ linked-list data-structures c++11

2
推荐指数
1
解决办法
783
查看次数

标签 统计

c++ ×1

c++11 ×1

data-structures ×1

linked-list ×1