LeetCode(算法)- 160. 相交链表
Posted 放羊的牧码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(算法)- 160. 相交链表相关的知识,希望对你有一定的参考价值。
题目链接:点击打开链接
题目大意:略
解题思路:主要能想到各组走完自己的链路 + 再走对方的链路一定能碰到在第一个相交点
相关企业
- 优步(Uber)
- 腾讯(Tencent)
- PayPal
- 谷歌(Google)
- 三星
- 高盛集团(Goldman Sachs)
- 高通
- 奥多比(Adobe)
- 小米集团
- 阿里巴巴
- 字节跳动
- 微软(Microsoft)
- Shopee
- 美团
- 叽里呱啦
- 百度
- 网易
- miHoYo
AC 代码
- Java
/**
* Definition for singly-linked list.
* public class ListNode
* int val;
* ListNode next;
* ListNode(int x)
* val = x;
* next = null;
*
*
*/
// 解决方案(1)
class Solution
ListNode getIntersectionNode(ListNode headA, ListNode headB)
Map<Integer, Boolean> map = new HashMap<>();
while (headA != null)
if (!map.containsKey(headA.hashCode()))
map.put(headA.hashCode(), true);
headA = headA.next;
while (headB != null)
if (map.containsKey(headB.hashCode()))
return headB;
headB = headB.next;
return null;
// 解决方案(2)
public class Solution
public ListNode getIntersectionNode(ListNode headA, ListNode headB)
ListNode A = headA, B = headB;
while (A != B)
A = A != null ? A.next : headB;
B = B != null ? B.next : headA;
return A;
- C++
/**
* Definition for singly-linked list.
* struct ListNode
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL)
* ;
*/
class Solution
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB)
ListNode *A = headA, *B = headB;
while (A != B)
A = A != nullptr ? A->next : headB;
B = B != nullptr ? B->next : headA;
return A;
;
以上是关于LeetCode(算法)- 160. 相交链表的主要内容,如果未能解决你的问题,请参考以下文章