本文介绍了删除链接列表的最后一个节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试删除链表的最后一个节点,
我有链表的第一个元素。但是该功能不起作用,如果您能帮助我,我将很高兴

I am trying to delete the last Node of a linked list,I have the first element of the list. But the function does not work I would be happy if you could help me

代码-

void deleteNode(Node* firstNode)
{
    Node* currNode = firstNode;
    while (currNode->next != NULL)
    {
     currNode = currNode->next;
    }
     delete currNode->next;
     currNode->next = NULL;
 }


推荐答案

您正在删除以下内容最后一个节点,无论如何应为NULL。

You are deleting the one after the last node, which should be NULL anyways.

void deleteNode(Node* firstNode)
{
    //first check if firstNode is NULL or last node.
    if(firstNode == NULL)
        return;

    if(firstNode->next == NULL)
    {
        delete firstNode;
        firstNode = NULL;
        return;
    }

    Node* currNode = firstNode;
    while (currNode->next && currNode->next->next != NULL)
    {
        currNode = currNode->next;
    }
    delete currNode->next;
    currNode->next = NULL;
}

这篇关于删除链接列表的最后一个节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 01:09