当前位置: 首页 > 知识库问答 >
问题:

在Java中LinkeList的开头插入新节点

郁灿
2023-03-14

在链表开头插入新节点

如何在链表的开头插入节点?

并用java实现了一个简单的LinkedList。

public class SinglyLinkedList
{
    //Private variable to keep tab of the HEAD of the linked list.
    private ListNode head;

    //Private variable to keep track of the node count in this singly linked list.
    private int length;
.
.
.
    /**
    * Insert a ListNode at the beginning of this List.
    */
    public synchronized void insertAtBegin(ListNode newNode)
    {
        //Set current head as the next of input ListNode
        newNode.setNext(head);

        //Set the input ListNode as the new head of this SinglyLinkedList
        head = newNode;

        //Increment the SinglyLinkedList length
        length++;
    }
.
.
.
}//End of class SinglyLinkedList
/**
* Represents a Node of the Linked List.
*/
public class ListNode
{
    private ListNode next;  
    private int data;

    /**
    * Constructors
    */
        public ListNode()
        {
            next = null;
            data = Integer.MIN_VALUE;
        }
        public ListNode(int data)
        {
            next = null;
            this.data = data;
        }

    /**
    * Accessor methods.
    */  
        public int getData()
        {
            return this.data;
        }

        public void setData(int data)
        {
            this.data = data;
        }

        public ListNode getNext()
        {
            return next;
        }

        public void setNext(ListNode listNode)
        {
            this.next = listNode;
        }

        public String toString()
        {
            return Integer.toString(data);
        }

}//End of class ListNode
//Set current head as the next of input ListNode
        newNode.setNext(head);
        //Set the input ListNode as the new head of this SinglyLinkedList
        head = newNode;

共有1个答案

司徒鸿文
2023-03-14

假设您有以下LinkedList:

2 -> 3 -> 4 -> 5

并且希望在开头插入一个值为1的节点。让我们将此节点称为newnode

现在看这一行:newnode.setnext(head);您正在使newnodenextnext值指向head,在本例中,它指向值为2的节点。这就是您的列表现在的样子:

1 -> 2 -> 3 -> 4 -> 5
 类似资料:
  • 而这是我的主课,有没有其他方法做得更有效率?

  • 问题内容: 我只能用String来做到这一点,例如: 有没有办法用StringBuilder做到这一点?谢谢。 问题答案: 警告: 它违背了的目的,但确实满足您的要求。 更好的技术 (尽管仍然不理想): 反转要插入的 每个 字符串。 将 每个字符串 附加 到。 完成后反转 整个 过程。 这将打开一个O( ñ ²)溶液到O( Ñ )。

  • 我正在为BST开发一个递归插入方法。假定该函数是一个递归辅助方法,并且位于名为Node的私有类中。节点类位于名为BinarySearchTree的类中,该类包含根的实例变量。当我尝试插入一个元素时,我在以下位置得到一个NullPointerException: 这左=插入((节点)左)。元素); 我不确定为什么会发生这种情况。如果我理解正确,在BST中,我假设将项目插入到所横穿路径的最后一点。感谢

  • 问题内容: 我创建了一个新的JsonNode 与此节点一起,然后如何在其中添加键值对,以便可以使用新值构造此新节点?我在http://www.cowtowncoder.com/blog/archives/2011/08/entry_460.html中阅读的内容涉及使用 但是,查看Jackson的JsonNode(v1.8)的API并没有显示任何此类方法。 问题答案: 这些方法在:除法中,大多数读取

  • 我试图在二叉树中插入节点,如果我用addNode(Node root)替换方法addNode(Node Node)代码运行良好。这是因为我在第一行声明了吗?请解释一下。addNode方法由于字数限制而不完整,否则它是完整的,运行良好。