public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
Set<ListNode> visited = new HashSet<ListNode>();
ListNode temp = headA;
while (temp != null) {
visited.add(temp);
temp = temp.next;
}
temp = headB;
while (temp != null) {
if (visited.contains(temp)) {
return temp;
}
temp = temp.next;
}
return null;
}
}
用HashSet记录是否相等,如果节点相等说明他们相交。
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode A = headA;
ListNode B = headB;
while(A != B){
A = A == null? headB : A.next;
B

该博客探讨了如何解决160号问题——相交链表。通过使用HashSet记录链表节点的相等性,当找到相等节点时确定它们相交。分析了不同链表长度情况下的遍历策略,指出当遍历到相交部分的第二个节点时,两链表相遇。若无相交部分,最终会遍历完整个链表并返回null。
最低0.47元/天 解锁文章
1627

被折叠的 条评论
为什么被折叠?



