为什么我的链表是倒序输入的?Java

影龙武 2020-04-14 12:44:38
import java.util.Scanner;

public class Main {

public static void main(String[] args) {

//头结点
Node headNode1 = new Node();
Node headNode2 = new Node();


// 输入有序链表1 有序链表2
Scanner scanner = new Scanner(System.in);
System.out.println("请输入集合(链表)A的元素个数:");
int size1 = scanner.nextInt();
System.out.println("请依次输入集合(链表)A的元素(递增):");
if (size1 > 0) {
headNode1.data = scanner.nextInt();
}
Node curNode1 = headNode1;
for (int i = 1; i < size1; i++) {
curNode1.next = new Node(scanner.nextInt(), null);
curNode1 = curNode1.next;
}
System.out.println("请输入集合(链表)B的元素个数:");
int size2 = scanner.nextInt();
System.out.println("请依次输入集合(链表)B的元素(递增):");
if (size2 > 0) {
headNode2.data = scanner.nextInt();
}
Node curNode2 = headNode2;
for (int i = 1; i < size2; i++) {
curNode2.next = new Node(scanner.nextInt(), null);
curNode2 = curNode2.next;
}

System.out.print("集合(链表)A: ");
display(headNode1);
System.out.print("集合(链表)B: ");
display(headNode2);

System.out.print("A与B的交集: ");
display(mix(headNode1, headNode2));

}

// 求两个集合的交集
public static Node mix(Node n1, Node n2) {
Node resNode = new Node();
Node n22 = n2;
while(n1 != null) {
n22 = n2;
while(n22 != null) {
if (n1.data == n22.data) {
//问题:这里为什么会倒序输入
//resNode.next = new Node(n1.data,resNode.next);
//上面一行和下面三行效果一样
Node newNode = new Node(n1.data);
newNode.next = resNode.next;
resNode.next = newNode;
}
n22 = n22.next;
}
n1 = n1.next;
}

return resNode.next;
}

//显示以当前节点为头结点的链表的信息
public static void display(Node heaNode) {
StringBuilder res = new StringBuilder();
Node curNode = heaNode;
while(curNode != null) {
res.append(curNode.data + " -> ");
curNode = curNode.next;
}
res.append("NULL");
System.out.println(res);
}

}

class Node {
int data;
Node next;
public Node(int data, Node next) {
super();
this.data = data;
this.next = next;
}
public Node(int data) {
this.data = data;
this.next = null;
}
public Node() {
this.data = -1;
this.next = null;
}

}


问题应该是出在这
...全文
91 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧