我试图用一个公共交集节点创建两个链表。如我所见,这是LinkedList中寻找交叉点的一个非常热门的问题我已经编写了以下代码,但是它抛出了invalidooperationexception。

        LinkedList<int> LL = new LinkedList<int>();
        LL.AddFirst(5);
        LL.AddFirst(4);
        LL.AddFirst(3);
        LL.AddFirst(2);
        LL.AddFirst(1);

        LinkedListNode<int> sectionNode = LL.Find(3);
        LinkedList<int> LL2 = new LinkedList<int>();
        LL2.AddFirst(100);
        LL2.AddFirst(90);
        LL2.AddFirst(80);
        LL2.AddFirst(sectionNode);

有人能告诉我怎样用C#创建一个Y形的链表吗。

最佳答案

它不受支持节点跟踪其List,您可以通过get-only属性访问它这意味着一个节点不能同时在两个列表中,并且只能通过删除然后添加来更改父列表。
这显然是为了保护人们不受错误的伤害,但它也使你想要的不可能实现注意,LinkedList是双链接的,所以如果成功了,就必须任意选择ListPrevious引用。
您可以使用(或编写)具有不同行为的第三方实现例如,this code实现一个单链表。节点没有对其包含列表的引用,因此y应该很好。

10-06 13:33