为什么插入数据后丢失了之前的数据

img

img


在通过尾插插入数据时,只打印出尾插的数据,而之前的数据丢失了

你的尾插法写的有问题吧,t应该指向尾节点,这里你可以通过遍历得到尾节点,也就是从头一直找到尾

第一个图的代码,没有看到完整的,贴出文字的代码吧,看一看

该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据您提供的代码,我没有看到在 LinkListClass 类中的 Add 方法的实现,但是我可以假设它是在单链表的末尾插入一个新的节点。根据您提供的描述,似乎您已经使用了头插法和尾插法来创建单链表,并且插入数据的操作只是在尾插法之后进行的。

在单链表中,如果您仅使用尾插法插入新节点,则您仅会看到最后插入的节点,因为每个节点都指向下一个节点,并且最后一个节点的下一个节点通常设置为 null。因此,遍历链表时只能访问最后插入的节点。

如果您想访问整个链表,您需要遍历整个链表。例如,在 LinkListClass 类中添加一个 toString 方法来遍历链表并返回一个字符串表示整个链表。例如:

@Override
public String toString() {
    StringBuilder sb = new StringBuilder();
    LinkNode<E> p = head.next;
    while (p != null) {
        sb.append(p.data);
        sb.append(" ");
        p = p.next;
    }
    return sb.toString();
}


然后在您的 main 方法中,可以使用以下代码来打印整个链表:

System.out.println(str.toString());


这将打印出完整的链表,而不仅仅是最后一个插入的元素。