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