您的位置:首页 > 财经 > 金融 > LCR 023

LCR 023

2025/3/19 10:00:42 来源:https://blog.csdn.net/yang_brother/article/details/142345647  浏览:    关键词:LCR 023

题目:LCR 023


解法一:哈希表

将链表A所有元素放入Set中,遍历链表B元素,若某一元素在Set中存在,则该元素便是重复元素

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {Set<Object> set = new HashSet<>();while (headA != null) {set.add(headA);headA = headA.next;}while (headB != null) {if (set.contains(headB)) {return headB;}headB = headB.next;}return null;}

解法二:双指针

指针A指向链表A头节点,指针B指向链表B头节点,二者同时遍历,若某一链表遍历结束,则转向另一链表遍历,当两指针指向相同元素时,便是两链表相交结点。

注意:指针移动指向另一个链表头部的条件应该为 nodeA == null,而非 nodeA.next == null,因为当两个链表不相同时,跳出循环的条件为二者均为null,若不让指针指向null,则会一直循环

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode nodeA = headA, nodeB = headB;while (nodeA != nodeB) {nodeA = (nodeA == null) ? headB : nodeA.next;nodeB = (nodeB == null) ? headA : nodeB.next;}return nodeA;}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com