链接列表c ++只打印1个节点

时间:2017-06-16 15:09:13

标签: c++ function

我有一个简单的链接列表似乎工作正常,但我有一个问题。如何仅打印最后一个节点?我有一个打印完整列表的功能

void printList()
{
    curr = head;
    while(curr != NULL)
    {
        cout << curr->data;
        curr = curr->next;
    }
}

而且我试图这样做但是我失败了

void printNode()
{
    curr = head;
    cout << curr->data;
    curr = curr->next;
}

3 个答案:

答案 0 :(得分:2)

假设方法可以访问“head”而无需作为参数发送,请尝试:

void printNode()
{
    if(!head) {
        cout<<"empty list"<<endl;
        return;
    }
    listNode* curr = head;
    while(curr->next) curr = curr->next; // Iterate to the last node

    cout << curr->data;
}      

答案 1 :(得分:1)

首先,你需要找到最后一个节点,然后你需要打印它。它可能看起来像这样:

void printList()
{
    curr = head;

    //if curr->next is NULL, we know that curr must be the last element
    while(curr != NULL && curr->next != null)
    {
        curr = curr->next;
    }

    cout << curr->data;
}

答案 2 :(得分:0)

为了仅打印最后一个节点,您必须扫描整个列表,直到curr->next为空,这样您才能最终到达最后一个节点。可以使用while循环轻松实现,每次循环检查curr->next != null。在循环之后,curr将指向最后一个元素。