【问题标题】:What is the efficient way to traverse a list?遍历列表的有效方法是什么?
【发布时间】:2020-10-19 06:10:31
【问题描述】:

遍历链表直到temp!=NULL(用于遍历链表的临时变量)和temp->next!=NULL有什么区别?

while(temp!=NULL)
{
cout<<temp->data;
temp=temp->next;
}

while(temp->next!=NULL)
{
cout<<tmep->data;
temp=temp->next;
}

【问题讨论】:

    标签: pointers data-structures linked-list


    【解决方案1】:

    不同的是第一个将打印链表中的所有节点数据。 但是第二个将打印除最后一个之外的所有节点数据。由于最后一个节点的next指针指向null,因此while循环内的条件为假,不会对最后一个节点执行。

    【讨论】:

    • Golam rahman 那是我想知道的……谢谢……
    【解决方案2】:

    我要给出的主要答案是上述算法可以同样用于遍历链表。这就是区别。

    第一种算法: 指针首先移动。然后,它检查当前节点。如果不等于 null,则输出该值并将指针前进到下一个节点。遍历完成后,指针指向一个空值。

    第二种算法: 指针检查下一个节点。如果它不等于 null,则将指向它的指针前进并输出该值。遍历完成后,指针指向最后一个节点。

    【讨论】:

      【解决方案3】:

      当您使用第二种方法时,请确保在开始 while 循环之前临时变量不为 NULL。如果列表中没有项目,则在 while 循环的第一行尝试访问 temp-&gt;next 时会出现异常。

      另一方面,即使临时变量为NULL,第一种方法也不会导致此错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-03
        • 1970-01-01
        • 2021-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多