当前位置:网站首页>leetcode/两个链表的第一个重合节点
leetcode/两个链表的第一个重合节点
2022-08-10 11:36:00 【xcrj】
代码
package com.xcrj;
import java.util.HashSet;
import java.util.Set;
/** * 剑指 Offer II 023. 两个链表的第一个重合节点 * 给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 */
public class Solution23 {
/** * 散列法 * 先统计headA于set中,再逐个遍历headB判断set中是否包含某个结点 */
public ListNode getIntersectionNode1(ListNode headA, ListNode headB) {
Set<ListNode> aSet = new HashSet<>();
ListNode pa = headA;
while (pa != null) {
aSet.add(pa);
pa = pa.next;
}
ListNode pb = headB;
while (pb != null) {
if (aSet.contains(pb)) {
return pb;
}
pb = pb.next;
}
return null;
}
/** * 双指针,指针交叉,速度相同的双指针要想相遇需要从同样的起点出发 * * 若 a长度等于b,pa pb指针速度一致 不用遍历c就能相遇 * 若 a长度大于b,pb走完自己的链表(b+c)时,pa也走了长度(b+c)还剩余a-b没走,此时让pb也走a-b。pa和pb都走完a-b后二者就走到了同样的起点往前走 */
public ListNode getIntersectionNode2(ListNode headA, ListNode headB) {
// 特殊情况处理
if (null == headA || null == headB) {
return null;
}
// 双指针
ListNode pa = headA;
ListNode pb = headB;
while (pa != pb) {
pa = pa == null ? headB : pa.next;
pb = pb == null ? headA : pb.next;
}
return pa;
}
public static void main(String[] args) {
}
}
参考
作者:LeetCode-Solution
链接:https://leetcode.cn/problems/3u1WK4/solution/liang-ge-lian-biao-de-di-yi-ge-zhong-he-0msfg/
来源:力扣(LeetCode)
边栏推荐
- 【Redis】内存回收策略
- Microchip launched a high-performance 77GHz millimeter-wave radar chip, and has received tens of thousands of orders before mass production
- LeetCode 369. Plus One Linked List
- HDU 4135:Co-prime (容斥原理)
- CLIP还能做分割任务?哥廷根大学提出一个使用文本和图像prompt,能同时作三个分割任务的模型CLIPSeg,榨干CLIP能力...
- Not just running away, but saving the guy who mishandled rm -rf /*
- search--09
- Module 9 - Designing an e-commerce seckill system
- LeetCode 61. Rotating linked list
- LeetCode50天刷题计划(Day 17—— 下一个序列(14.50-16.30)
猜你喜欢
Flutter气泡框实现
网络基础(第一节)
第六届”蓝帽杯“全国大学生网络安全技能大赛半决赛部分WriteUp
A detailed explanation of implementation api embed
mpf6_Time Series Data_quandl_correct kernel PCA_AIC_BIC_trend_log_return_seasonal_decompose_sARIMAx_ADFull
A case of violent parameter tuning in machine learning
可视化服务编排在金融APP中的实践
How many constants and data types do you remember?
一文详解 implementation api embed
dedecms supports one-click import of Word content
随机推荐
LeetCode50天刷题计划(Day 19—— 在排序数组中查找元素的第一个和最后一个位置(9.10-10.40)
搜索--09
Diary 16
Can CLIP also do segmentation tasks?The University of Göttingen proposed a model CLIPSeg that uses text and image prompts to perform three segmentation tasks at the same time, draining CLIP capabiliti
迈矽科推出高性能77GHz毫米波雷达芯片,尚未量产就已获数万颗订单
LeetCode 21. Merge two ordered linked lists
时间序列的数据分析(五):简单预测法
LeetCode50天刷题计划(Day 18—— 搜索旋转排序数组(8.50-12.00)
LeetCode 92. Reverse Linked List II
面试官:你们是如何保证接口的幂等性?
【mysql】explain介绍[通俗易懂]
配置swagger
LeetCode 25. K 个一组翻转链表
中芯CIM国产化项目暂停?上扬软件:未停摆,改为远程开发!
Analysis of the name matching process between the LCD driver and the device (Tiny4412)
CLIP还能做分割任务?哥廷根大学提出一个使用文本和图像prompt,能同时作三个分割任务的模型CLIPSeg,榨干CLIP能力...
leetcode 823. Binary Trees With Factors(因子二叉树)
LeetCode 369. Plus One Linked List
Configure druid data source "recommended collection"
jlink 与 swd 接口定义