公共类插入节点{
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList list=new LinkedList();
list.head=new Node(2);
list.head.next=new Node(3);
addFront(list.head,8);
System.out.println(list);
addEnd(list.head,11);
System.out.println(list);
addEnd(list.head,15);
System.out.println(list);
}
public static void addFront(Node head,int value)
{
Node newHead=new Node(value);
newHead.next=head;
head=newHead;
}
public static void addEnd(Node head,int value) {
Node newHead=new Node(value);
Node ref=head;
Node last=ref;
while(ref!=null) {
last=ref;
ref=ref.next;
}
last.next=newHead;
}
}
您好,代码在LinkedList add head和add last的实现之上。但是,当我运行代码时,我可以添加新节点作为链表上的最后一个节点,但我不能将新节点添加到链表的请求中。
运行此代码时,输出为:
head 2 --> 3 --> null
head 2 --> 3 --> 11 --> null
head 2 --> 3 --> 11 --> 15 --> null
加数法有效,但为什么不加前置呢?
因为节点头
是指向列表的
。当您执行addFront()
的局部变量。头部head=newHead
操作时,您只需将局部变量指向刚刚创建的新节点。
main()
中的列表完全不受影响。
使用
加数
,您不需要修改列表的第一个元素,因此不需要发送列表。您也不修改主列表,只修改最后一个元素,对于该方法来说,这就足够了。
您需要将列表发送给该方法,以便它可以访问其
头
属性。
我使用的是C#,不是Java,但我想这应该可以:
...
addFront(list, 8);
...
}
public static void addFront(LinkedList list,int value)
{
Node newHead=new Node(value);
newHead.next=list.head;
list.head=newHead;
}
这里的
list
也是一个局部变量,但它指向主列表,所以list。磁头
是相同的记忆位置,任何修改都会影响主列表。头部
。如果您碰巧执行了list=something
,它同样不会影响主列表,只会影响局部变量。
顺便说一句,尽量使用适当的变量名称,这样代码就不会混淆。在
addend
中,您的变量不应该被命名为newHead
。
在下面的调用中,您实际上传递的是list的头节点的内存位置,而不是实际的头对象:
addFront(list.head,8);
然后,通过引用方法签名(即节点头)来保持存储器位置。
头-
然后,在方法主体内,您只需将引用重置为新的内存位置:
头-
请注意:list.head是一个非原始对象,在java中,非原始对象是通过引用传递的。
我的问题在我的main方法中,如何向链表中添加多个节点....我现在先从节点2和节点3开始..我以为我添加了这些节点,但是我意识到我并没有对这些节点和它们的值做任何事情,对吗?如何使用setData()和setNext()来添加所有这些节点?这有意义吗? 如果上面设置了值,如何将它们全部添加? 然后,我需要为每一项设置数据和下一步吗?(这似乎是多余的,因为我似乎在上面的构造函数中设置了每个节点的值
正如我所知,ArrayList以2^n+1的大小复制数组。而linkedlist只更改节点
我已经开始使用Java。我想将内置Java LinkedList类与我的自定义节点类一起使用(我的节点类将包含字段:数据、向下指针、右指针)。有可能吗? 下面是我的节点类: 我创建了以下实例: LinkedList h=新的LinkedList 我想在java中使用内置的链表类实现一个2D链表。为了能够做到这一点,我想实现我的自定义节点。
我正在将以下数据作为赋值的一部分读取到二叉树(不是严格的二叉查找树)中: 它们被读取到python、和中的三个列表中,其中第一行具有整数是节点数。接下来的n行是键,左,右。其中左是父级左子级的键是,同样右子级的键是,因此例如第一行是4的键是根,意味着2是4的左子级,意味着5是4的右子级,以此类推,-1代表左右意味着这个键是叶子: 此示例的树结构 问题是正在添加根的左右子节点,但没有添加其中的任何子
我的任务是搜索中的值,如果找到某个值,则应将其删除并放置在的开头。
我想在java中创建一个哈希表类,将键和值对存储在链表的ArrayList中 然后,我想创建一个链接列表对象,然后可以使用该对象在arrayList的每个索引内创建一个新的链接列表。为此,我声明: 然后我设置了add函数以将元素添加到LinkedList的第一个索引中,该索引位于arrayList的哈希键索引中: 每次运行此代码时,我都会收到一个错误,其中我的索引为7而我的大小为0。这会导致错误: