import java.util.HashMap;
class Node {
public Node next;
public String val;
public Node(String val) {
this.val = val;
}
}
public class Main {
public static void main(String[] args) {
// TODO 链表1
Node rootOne = new Node("one");
Node node1 = new Node("1");
Node node2 = new Node("2");
Node node3 = new Node("3");
Node node4 = new Node("4");
Node node5 = new Node("5");
rootOne.next = node1;
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
node5.next = null;
printLink(rootOne);
// TODO 链表2
Node rootTow = new Node("two");
rootTow.next = node3; // 相交的点
printLink(rootTow);
calXiangJiao(rootOne, rootTow);
}
// 打印链表
public static void printLink(Node root) {
if (root == null) {
return;
}
System.out.println(root.val);
Node cur = root;
while (cur.next != null) {
System.out.println(cur.next.val);
cur = cur.next;
}
System.out.println();
}
// 打印相交的值
public static void calXiangJiao(Node rootOne, Node rootTwo) {
HashMap<Node, Boolean> nodeBooleanMap = new HashMap<>();
Node cur1 = rootOne;
while (cur1 != null) {
nodeBooleanMap.put(cur1, true);
cur1 = cur1.next;
}
Node cur2 = rootTwo;
while (cur2 != null) {
if (nodeBooleanMap.get(cur2) != null) {
System.out.println(cur2.val);
return;
}
cur2 = cur2.next;
}
}
}
/*
3
*/
计算2个链表的交点
最新推荐文章于 2023-07-29 23:09:31 发布