添加到链接列表的前面

我很困惑如何添加到链表的前面。

/** * data is added to the front of the list * @modifies this * @ffects 2-->4-->6 becomes data-->2-->4-->6 */ public void insert(E data) { if (front == null) front = new Node(data, null); else { Node temp = new Node(data, front); front = temp; } } 

这创造了一个循环。 我该如何避免?

我有一个LinkedList类,它将前端节点保存在一个名为front的变量中。 我在这个LinkedList类中有一个Node类。

任何帮助,将不胜感激。 谢谢。

你不能访问“下一步”节点吗?

在这种情况下

  public void insert(E data) { if (front == null) { front = new Node(data, null); } else { Node temp = new Node(data, null); temp.next = front; front = temp; } } 

  class LinkedList { Node front; LinkedList() { front = null; } public void AddToFront(String v) { if (front == null) { front = new Node(v); } else { Node n = new Node(v); n.next = front; front = n; } } } class Node { private String _val; public Node(String val) { _val = val; } public Node next; } 

我假设Node构造函数将下一个指针作为其第二个参数,在这种情况下,我没有看到此代码有任何明显错误。 这听起来像是一个家庭作业问题。 如果是,您应该标记它。

凭借我有限的链表知识,我会冒险:

 Node temp = new Node(data); temp.next = front; front = temp; 

你可能想要等待某人确认。

这创造了一个循环。 我该如何避免?

如果没有链接列表实现的其余代码,则无法确定,但您提供的代码看起来并不像它创建一个循环。

如果正在创建一个循环,则很可能是在其他地方创建的。 或者,您/您的测试错误地将一些其他故障误认为是由循环引起的。

如果您需要更多帮助,请发布更多代码/证据…特别是Node构造函数,以及让您认为自己有周期的代码。

添加新节点,如果当前头不为空,则将当前头指向新创建的节点作为下一个节点。

 Node insert(Node head,int x) { Node node = new Node(); node.data = x; if(head != null) { node.next = head;} return node; } 

这是我在Java中将节点插入到链接列表的前面或头部的实现。

 void insertAtHead(Object data){ if(head==null) { head = new Node(data); } Node tempNode = new Node(data); Node currentNode = head; tempNode.setNext(currentNode.getNext()); head.setNext(tempNode); incrementCounter(); }