sha*_*ank 0 java algorithm linked-list data-structures
我被赋予指向链表的头节点的指针,要添加到列表的整数以及必须插入整数的位置.将此节点插入所需位置后,我需要返回头节点.
我写的代码由于某种原因不起作用,并且进入无限循环.
class Node {
int data;
Node next;
}
Node InsertNth(Node head, int data, int position) {
int count = 0;
Node node = head;
Node prev = null;
while(count != position){
count++;
node = node.next;
prev = node;
}
Node newNode = new Node();
newNode.data = data;
newNode.next = node;
if(count == 0){
head = newNode;
}else{
prev.next = newNode;
}
return head;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
node = node.next;
prev = node;
Run Code Online (Sandbox Code Playgroud)
这应该是相反的顺序
prev = node;
node = node.next;
Run Code Online (Sandbox Code Playgroud)
而且代码也没有检查很多情况,例如指定的位置是否大于链表的大小.尝试重写代码,也可以提一下您用于测试函数的值.我认为prev=node应抛出一个例外,因为prev未初始化