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;
}
}

問題應該是出在這
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/93244.html
標籤:Java相關
上一篇:求助安卓逆向大佬
下一篇:Vue專案樹形控制元件node-click事件控制臺報錯Invalid handler for event "node-click": got undefined
