示例:我得到了这些节点: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;
}
答案 0 :(得分:1)
您可以使用Find
和AddAfter
方法:
LinkedListNode<int> node = linked.Find(2);
linked.AddBefore(node, 3);
重点是使用AddAfter
方法。