【发布时间】:2017-02-26 02:34:43
【问题描述】:
我正在尝试学习在链表中插入一个节点(并返回头部),但由于某种原因它不正确。
这是我的方法:
1.使用所需数据创建新节点
2.如果我们要在开头插入,将这个新节点指向头部,返回新节点
3.否则,循环到我们要插入节点的位置
-一旦我们到达那里,将要插入的节点指向当前节点的下一个节点
-将当前节点指向要插入的节点
-回首
为什么这不起作用?非常感谢!
Node InsertNth(Node head, int data, int position) {
Node node = new Node();
node.data = data;
if (position == 0) {
node.next = head;
return node;
}
else {
Node curr = head;
int currPos = 0;
while (currPos < position) {
curr = curr.next;
currPos++;
}
node.next = curr.next;
curr.next = node;
}
return head;
}
【问题讨论】:
-
你的意思是不起作用?到底发生了什么?请说明您的问题;不要让我们阅读代码来弄清楚。
-
高级代码看起来不错,请告诉我们您遇到的问题。
-
另外,调用是什么样的;是
head = insert(...);吗? -
如果你的数据结构中有一个指向 head 的指针,你必须更新它。
标签: java linked-list