gpt4 book ai didi

c# - 如何遍历链表

转载 作者:太空狗 更新时间:2023-10-30 00:25:04 27 4
gpt4 key购买 nike

我环顾四周,找不到真正能理解或不适用于我的答案。我有这个类:

class Node
{
public int value;
public Node next;
}

并且我有一个名为head 的成员变量,它是单链表的头部。现在我试图遍历链表的不同节点来搜索特定的 value。我知道如果我手动执行此操作,那么如果我想要第 5 个节点的 value,我会执行 head.next.next.next.next.value。对于非常大的链接列表,这很快就会变得乏味,所以我的问题是如何创建一些循环来遍历它,以便我可以检查每个节点中的 value 变量链表?

最佳答案

我知道这是一篇旧帖子,但这是 google 上突然出现的内容,我确实有一个很好的替代当前最佳答案(不包括期望值条件)

LinkedList<T> list = new LinkedList<T>();
for(LinkedListNode<T> node = list.First; node != null; node=node.Next){
//do stuff
}

此版本显然使用了 for 循环,并将变量声明和增量移动到一行,使您可以压缩和美化代码。


稍后编辑:如果您想制作自己的链表(无论出于何种原因,咳咳),试试这个:

// assumed implementation of class
LinkedList myLinkedList = new LinkedList();

int searchForValue = 5; // origial poster wants to search for value
Node resultNode = null;
int resultIndex = 0;
for(Node iNode = myLinkedList.head; iNode!=null; iNode = myLinkedList.next) {
if(iNode.value == searchForValue) {
resultNode = iNode;
break;
}
resultIndex++;
}

if(resultNode!=null)
Console.WriteLine($"Found value at index {resultIndex} of {resultNode.value}");

我决定在这么多年之后添加这个备选答案,因为我意识到我实际上并没有 100% 地回答原始发帖人的问题,就像他们希望得到回答的方式(也许他们想建立自己的链接列表)。因此,我现在通过提供一个更“合时宜”的答案来做到这一点。

但两者都足够了!

关于c# - 如何遍历链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19396346/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com