如何在双向链表中添加节点之前的节点?

时间:2016-01-19 10:05:18

标签: c# nodes doubly-linked-list

示例:我得到了这些节点:1,2,3,3 现在我想添加另一个节点:3 现在发生的事情是:1,2,3,3,3(新的) 但我想要的是:1,2,3(新的),3,3

怎么办?

    if (H == null)
        {
            H = N;
            T = N;
        }
        else if (H.freq >= freq) //add before the header
        {
            N.next = H;
            H.prev = N;
            H = N;
        }
        else if (T.freq < freq) // add after the tail
        {
            N.prev = T;
            T.next = N;
            T = N;
        }
        else //merge between head and tail
        {
            W = H;
            while (freq > W.freq)
            {
                W = W.next;
            }
            N.next = W;
            N.prev = W.prev;
            W.prev.next = N;
            W.prev = N;
        }

1 个答案:

答案 0 :(得分:1)

您可以使用FindAddAfter方法:

LinkedListNode<int> node = linked.Find(2);
linked.AddBefore(node, 3);

重点是使用AddAfter方法。