在双向链表中添加节点

时间:2010-03-22 18:14:07

标签: java linked-list

我正在研究一些代码,我需要将一个Node添加到一个双向链表中。这是我到目前为止的代码:

Node tempNext = cursor.getNext();
temp = new Node(item, null, cursor, tempNext);
tempNext.setPrev(temp);

其中cursor是新添加的节点应该在之前的节点。

如何设置其他节点以正确维护双向链表的状态?

3 个答案:

答案 0 :(得分:6)

编写有意义的变量名称将始终对您有所帮助,绝不使用像temp *:

这样的名称
protected void insertNodeAfter(Node currentNode, Node newNode) {
    Node displacedNode = currentNode.getNext();
    currentNode.setNext(newNode);
    newNode.setNext(displacedNode)
    displacedNode.setPrev(newNode);
    newNode.setPrev(currentNode);
}

答案 1 :(得分:2)

似乎所有你需要添加的是

cursor.setNext(temp);

你有特定的问题吗?

答案 2 :(得分:0)

public void addItemBefore( int info )
{
    previousItem = new ListItem( previousItem, info, this );
}