160.Intersection|160.Intersection of Two Linked Lists 找出两个链表的交叉部分
【160.Intersection|160.Intersection of Two Linked Lists 找出两个链表的交叉部分】题目:找到两个链表相交叉的第一个结点
文章图片
注意:
两个链表有交叉的部分,并且题目需要保持链表的结构,不能轻易去反转。
思想:
通过遍历A链表,将所有的结点放入hashset中。
之后遍历B链表,依次判断hashset中是否有正在遍历的当前结点,如果有,就直接返回,就是开始交叉的结点。
- java
/**
* Definition for singly-linked list.
* public class ListNode {
*int val;
*ListNode next;
*ListNode(int x) {
*val = x;
*next = null;
*}
* }
*/
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
HashSet set=new HashSet<>();
ListNode p=headA;
//将a链表的所有结点放入set中
while(p!=null){
set.add(p);
p=p.next;
}
//按顺序判断b链表中的结点在set中是否存在,如果存在就是第一交叉点。
ListNode q=headB;
while(q!=null){
if(set.contains(q))
return q;
q=q.next;
}return null;
}}
- javascript
/**
* Definition for singly-linked list.
* function ListNode(val) {
*this.val = val;
*this.next = null;
* }
*//**
* @param {ListNode} headA
* @param {ListNode} headB
* @return {ListNode}
*/
var getIntersectionNode = function(headA, headB) {
var set=new Set();
var p=headA;
while(p!=null){
set.add(p);
p=p.next;
}
var q=headB;
while(q!=null){
if(set.has(q))
return q;
q=q.next;
}
return null;
};
推荐阅读
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- NAT(网络地址转换技术)
- KubeDL HostNetwork(加速分布式训练通信效率)
- 清晨朗读327(How|清晨朗读327:How Successful People Network with Each Other)
- 神经网络Neural|神经网络Neural Networks
- 8-31|8-31 老Eastwood《骡子》
- AFNetworking上传图片
- 论文笔记|【论文笔记】DIEN: Deep Interest Evolution Network for Click-Through Rate Prediction
- 深度学习|论文阅读(《Deep Interest Evolution Network for Click-Through Rate Prediction》)