public class MergeSinglyLinkedList {
private static ListNode head;
private static class ListNode {
private int data;
private ListNode next;
public ListNode(int data) {
this.data = data;
this.next = null;
}
}
public static void main(String[] args) {
MergeSinglyLinkedList sll1 = new MergeSinglyLinkedList();
sll1.insertAtLast(1);
sll1.insertAtLast(5);
sll1.insertAtLast(9);
sll1.insertAtLast(11);
MergeSinglyLinkedList sll2 = new MergeSinglyLinkedList();
sll2.insertAtLast(2);
sll2.insertAtLast(3);
sll2.insertAtLast(7);
sll2.insertAtLast(10);
sll2.insertAtLast(11);
sll2.insertAtLast(13);
sll2.insertAtLast(19);
sll2.insertAtLast(20);
sll1.display();
sll2.display();
}
public void insertAtLast(int value){
ListNode newNode = new ListNode(value);
if(head==null){
head=newNode;
return;
}
ListNode current = head;
while (null!=current.next){
current= current.next;
}
current.next=newNode;
}
> public void display(){
ListNode current=head;
int count=0;
while (current!=null){
System.out.print(current.data+"-->");
count++;
current=current.next;
}
System.out.println("null");
}
这是我在intelliJ中尝试执行的代码。我期望的输出是:
1-->5-->9-->11-->null
2-->3-->7-->10-->11-->13-->19-->20-->null
型
但是,我得到的输出是
1-->5-->9-->11-->2-->3-->7-->10-->11-->13-->19-->20-->null
我尝试创建一个单独的**display 1()**函数,然后调用它来打印链表,如下所示:
public void display(){
ListNode current=head;
int count=0;
while (current!=null){
System.out.print(current.data+"-->");
count++;
current=current.next;
}
System.out.println("null");
}
public void display1(){
ListNode current=head;
int count=0;
while (current!=null){
System.out.print(current.data+"-->");
count++;
current=current.next;
}
System.out.println("null");
}
型
然后分别调用这两个函数:
sll1.display();
sll2.display1();
型
但输出仍然是:
1-->5-->9-->11-->2-->3-->7-->10-->11-->13-->19-->20-->null
1-->5-->9-->11-->2-->3-->7-->10-->11-->13-->19-->20-->null
型
我不知道我做错了什么,有人能帮帮我吗?
1条答案
按热度按时间wgx48brx1#
private ListNode head;
字符串
即使我有多个ListNode示例,也只有一个head,因为在head的定义中,使用了
static
关键字。因此,如果我们创建另一个ListNode head
或从现有定义中删除static
,输出将如下所示:1-->5-->9-->11-->null 2-->3-->7-->10-->11-->13-->19-->20-->null