week 8
发布于: 2020 年 07 月 27 日
双指针,指向list1的走到末尾且到list2走到null为止,指向list2的走到末尾切到list1走到null位置。
两个指针最后同时变为null则无交叉节点,如果途中出现两个指针指向同一个节点,则该节点是交叉节点。
Node findJoinNode(Node n1, Node n2) { Node p1 = n1; Node p2 = n2; boolean flipped1 = false; boolean flipped2 = false; while (p1 != null && p2 != null) { if (p1 == p2) { return p1; } if (p1.next == null) { if (flipped1) { break; } flipped1 = true; p1 = n2; } else { p1 = p1.next; } if (p2.next == null) { if (flipped2) { break; } flipped2 = true; p2 = n1; } else { p2 = p2.next; } } return null; }
划线
评论
复制
发布于: 2020 年 07 月 27 日阅读数: 48
Geek_2e7dd7
关注
还未添加个人签名 2018.11.08 加入
还未添加个人简介
评论 (1 条评论)