在特定点Linked List Java之后添加节点

时间:2015-02-12 19:11:42

标签: java linked-list

只是在我的代码上寻找一些建议,我试图在节点包含特定值后添加节点。到目前为止,我已经得到它插入节点,但它似乎跳过一个节点然后插入。所以它总是插入一个节点太远了。下面是我提出的代码......

public void addAfterData(int obj)
{
    int dataStop=7;
    ListNode newNode = new ListNode();
    ListNode insert = new ListNode(obj);
    newNode = head;

    while(newNode != null && newNode.data != dataStop)
    {
        newNode = newNode.link;

        if(newNode != null)
        {
            insert.link = newNode.link;
            newNode.link = insert;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

在包含特定值的节点之后添加新的常规代码是:

public void addNodeAfterData(Node head, Node node, int data)
{
    while (head != null && head.data != data)
    {
        head = head.next;
    }
    if (head != null)
    {
        node.next = head.next;
        head.next = node;
    }
}

基本上我们在这里做的是将head指针移动到我们正在查找的数据的位置,然后,当我们退出while循环时,我们要么到达末尾,因为我们没有找到值,所以我们不会添加它(或者将它添加到最后,直到你如何定义该行为),或者如果它不是null,那么我们确实找到它,然后我们将我们添加的节点指向其余的list,我们将当前节点包含data到我们的节点。