gpt4 book ai didi

java - 添加到链表的尾部

转载 作者:行者123 更新时间:2023-12-02 10:13:17 25 4
gpt4 key购买 nike

我的链表有一个追加方法,我想将其添加到尾部,但是当将新节点添加到列表中时,headNode 和 tailNode 都成为新插入的节点。如何让 headNode 保持作为进入列表的第一个节点,而不让它成为与 tailNode 相同的东西。

 public static void append()
{
for(int x = 0; x < gradeArray.length; x++)
{
if(gradeArray[x] < 70)
{
StudentNode newNode = new StudentNode(nameArray[x], gradeArray[x], null);
if(headNode == null)
{
headNode = newNode;
}
else
{
tailNode.nextNode = newNode;
}
tailNode = newNode;
}
}
}

最佳答案

我不确定你犯了什么错误,但看下面这段代码工作得很好。

    public class Grades {

public static String[] nameArray = new String[50];
public static int[] gradeArray = new int[50];

public static StudentNode headNode;
public static StudentNode tailNode;

public static void append() {
for (int x = 0; x < gradeArray.length; x++) {
if (gradeArray[x] < 70) {

String name = nameArray[x];
int grade = gradeArray[x];
StudentNode newNode = new StudentNode(name, grade, null);
if (headNode == null) {
headNode = newNode;
} else {
tailNode.nextNode = newNode;
}
tailNode = newNode;
}
}
}

public static void main(String[] args) throws java.lang.Exception {
for (int i = 0; i < 50; i++) {
nameArray[i] = "name-" + i;
gradeArray[i] = i;
}

append();

for(int i=0; i<50; i++) {
nameArray[i] = "name-" + (i + 50);
gradeArray[i] = i + 50;
}

append();

System.out.println(headNode.toString());
System.out.println(tailNode.toString());
}
}

class StudentNode {

public int grade;
public String name;
public StudentNode nextNode;

public StudentNode(String n, int g, StudentNode sn) {
name = n;
grade = g;
nextNode = sn;
}

public String toString() {
return name + ", " + grade;
}
}

即使您更改成绩和名称数组并再次运行追加,它仍然保持头部正确。

Ideone link for running code

关于java - 添加到链表的尾部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54848247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com