在"链接"列表中的特定位置插入节点

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未初始化