From 99f70def058951077af9456628c65f7b56ee88fe Mon Sep 17 00:00:00 2001 From: Wen <409053122@qq.com> Date: Thu, 1 Sep 2022 00:04:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8C=E9=93=BE=E8=A1=A8=E7=9B=B8=E4=BA=A4?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=80=9D=E8=B7=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ds/linklist/CircleLinkListQ.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/ds/linklist/CircleLinkListQ.java diff --git a/src/ds/linklist/CircleLinkListQ.java b/src/ds/linklist/CircleLinkListQ.java new file mode 100644 index 0000000..72e6673 --- /dev/null +++ b/src/ds/linklist/CircleLinkListQ.java @@ -0,0 +1,18 @@ +package ds.linklist; + +/** + * 有两个可能有环可能无环的单向链表,找出两个链表是否有相交节点 + * 由于单链表只有一个next,所以两个链表相交后之后的路径都是一样的 + * 一、两个无环,最后的终点一致则相交,记录到终点的路径,长路径先走去比短路径多的部分,然后两个链表一起走遇到第一个相等的节点即第一个想交接点 + * 二、一个有环一个无环不可能相交 + * 三、两个有环,先找到两个链表的入环节点, + * 1.如果两个入环节点是同一个,可看做两个无环链表的终点为入环节点的问题 + * 2.如果两个入环节点不是同一个 + * (1)如果从一个入环节点一直走碰不到另一个入环节点,则两个链表不相交 + * (2)如果从一个入环节点一直可以走到另一个入环节点,则任一入环节点可作为第一个相交节点 + * @author Wen + * @date 2022/8/31 23:45 + */ +public class CircleLinkListQ { + +}