c# - 如何获取列表中的最后一个元素(尾部)?

标签 c# linked-list

我正在尝试创建单链表,但我不知道我做错了什么。

插入元素 5,6,7,2,3,4 后,尾部应该是 4,但我得到了 3,我不明白为什么。

这是我的代码:

public void Insert(int x)
{
    Node a = new Node(x);

    if (Head == null)
    {
        Head = Tail = a;
    }
    else
    {
        Tail = Head;
        while (Tail.Next != null)
        {
            Tail = Tail.Next;
        }
        Tail.Next = a;
        a = Tail;
    }
}

最佳答案

在否定情况下,您尚未为 Tail 设置新值:

public void Insert(int x)
{
    Node a = new Node(x);

    if (Head == null)
    {
        Head = Tail = a;
    }
    else
    {
        Tail.Next = a;
        Tail = a;
    }
}

相关说明,在否定情况下,您不必搜索尾部,因为您已经准备好了 Tail 变量。

关于c# - 如何获取列表中的最后一个元素(尾部)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49238329/

相关文章:

c - 展开链表比链表好在哪里?

c# - 如何使用 C# 下载 Google SpreadSheets?

C# 如何进行 Xunit 测试 - Task Void 方法

c++ - 如何删除双向链表中与某个值匹配的所有项?

go - 为什么此链表未添加新节点?

c - wchar_t 读取

c# - 尝试将列表复制到数组时出错

c# - FirstOrDefault 内联空检查

c# - 如何配置WCF向客户端推送实时数据?

c - 为什么我的链表头没有改变?