当前位置: 首页 > news >正文

LeetCode-160.相交链表

160. 相交链表[1]

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交

image.png

image.png

方法一:哈希表法

//相交链表哈希表法
ListNode* getIntersectionNode(ListNode* headA, ListNode* headB)
{if (headA == NULL || headB == NULL) return NULL;unordered_set<ListNode*> st;//1:首先把headA插入st容器中while (headA != NULL){st.insert(headA);headA = headA->next;}//2:判断headB当前值是否在容器中while (headB!=NULL){if (st.count(headB)) return headB;headB = headB->next;}return nullptr;
}

方法二:环形查找

image.png

image.png

1:假如有相交的点 A走到C的距离是:a+c+b:2+2+3 B走到C的距离是:b+c+a:3+2+2 2:假如没有相交的点 那么A与B走的距离都是:a+b 3:当A等于B时候返回,或者都为null时候跳出循环

//取环形链表的方法
ListNode* getIntersectionNode1(ListNode* headA, ListNode* headB)
{if (headA == NULL || headB == NULL) return NULL;ListNode* tempa = headA;ListNode* tempb = headB;while (tempa != tempb)  //只有找到相等或者找不到都为null时候跳出循环{tempa = tempa != nullptr ? tempa->next : headB;tempb = tempb != nullptr ? tempb->next : headA;}return tempa; //返回tempa或者tempb都可以
}

最新原创的文章都先发布在公众号,欢迎关注哦~, 扫描下方二维码回复「资料」可以获得我汇总整理的计算机学习资料

扫码_搜索联合传播样式-标准色版.png

扫码_搜索联合传播样式-标准色版.png

引用链接

[1] 160. 相交链表: https://leetcode.cn/problems/intersection-of-two-linked-lists/

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C#学习笔记(三)Visual Studio安装与使用
  • 第十一章 【后端】商品分类管理微服务(11.1)——创建父工程
  • linux 操作系统下dd 命令介绍和使用案例
  • 【有啥问啥】对比学习(Contrastive Learning,CL)的原理与前沿应用详解
  • 【目标检测数据集】锯子数据集1107张VOC+YOLO格式
  • 【踩坑】装了显卡,如何让显示器从主板和显卡HDMI都输出
  • MATLAB入门教程
  • (k8s)Kubernetes 从0到1容器编排之旅
  • linux网络编程——UDP编程
  • 【深度学习】神经网络-怎么分清DNN、CNN、RNN?
  • 深度剖析去中心化存储:IPFS、Arweave 和 BNB Greenfield 的技术革新与生态系统演进
  • 30款免费好用的工具,打工人必备!
  • 浅谈vue2.0与vue3.0的区别(整理十六点)
  • 伙房食堂电气安全新挑战:油烟潮湿环境下,如何筑起电气火灾“防火墙”?
  • git的快速合并fast-forward merge详解
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • @jsonView过滤属性
  • HTTP中的ETag在移动客户端的应用
  • input实现文字超出省略号功能
  • Javascripit类型转换比较那点事儿,双等号(==)
  • jQuery(一)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • PaddlePaddle-GitHub的正确打开姿势
  • Python学习笔记 字符串拼接
  • Sequelize 中文文档 v4 - Getting started - 入门
  • supervisor 永不挂掉的进程 安装以及使用
  • vue的全局变量和全局拦截请求器
  • Vue官网教程学习过程中值得记录的一些事情
  • Xmanager 远程桌面 CentOS 7
  • 包装类对象
  • 笨办法学C 练习34:动态数组
  • 每天10道Java面试题,跟我走,offer有!
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用Swoole加速Laravel(正式环境中)
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 转载:[译] 内容加速黑科技趣谈
  • gunicorn工作原理
  • ​Java并发新构件之Exchanger
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • !!java web学习笔记(一到五)
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # C++之functional库用法整理
  • #565. 查找之大编号
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (接口封装)
  • (力扣)循环队列的实现与详解(C语言)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)JAVA中的堆栈
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • ./configure,make,make install的作用(转)
  • .DFS.
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!