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

义乌营销型网站建设/seo关键词排名优化品牌

义乌营销型网站建设,seo关键词排名优化品牌,做网站插音乐怎么隐藏,怎么把图片做成网页【题目】 在本题中,单链表可能有环,也可能无环。给定两个单链表的头节点head1和head2,这两个链表可能相交,也可能不相交。请实现一个函数, 如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null即可。 要求:如果链表1的长度为N,链表2的长度为M,时间复杂度请达到0(NM),…

【题目】
在本题中,单链表可能有环,也可能无环。给定两个单链表的头节点head1和head2,这两个链表可能相交,也可能不相交。请实现一个函数, 如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null即可。
要求:如果链表1的长度为N,链表2的长度为M,时间复杂度请达到0(N+M),额外空间复杂度请达到0 (1)。

有环的有两种解法

第一种用set或者map

在这里插入图片描述

 public static ListNode EntryNodeOfLoopBySet(ListNode pHead){if(pHead==null||pHead.next==null) return null;Set<ListNode> set = new HashSet<>();while (pHead!=null){if (set.contains(pHead)) return pHead;set.add(pHead);pHead=pHead.next;}return null;}

不用set的方法

在这里插入图片描述

public static Node getLoopNode(Node head) {if (head == null || head.next == null || head.next.next == null) {return null;}Node n1 = head.next; // n1 -> slowNode n2 = head.next.next; // n2 -> fastwhile (n1 != n2) {if (n2.next == null || n2.next.next == null) {return null;}n2 = n2.next.next;n1 = n1.next;}n2 = head; // n2 -> walk again from headwhile (n1 != n2) {n1 = n1.next;n2 = n2.next;}return n1;}

无环的两种解法

map方法:遍历链表1存入节点到map,在遍历链表2,如果map有该值那就说交点,很简单不用多说

非map:两个链表分别求出长度len1,len2,然后找到最后两个结束时的节点,last1和last2.如果两者相等一定相交在这里插入图片描述

public static Node noLoop(Node head1, Node head2) {if (head1 == null || head2 == null) {return null;}if (loop1 == loop2) { cur1 = head1;cur2 = head2;int n = 0;while (cur1 != loop1) {n++;cur1 = cur1.next; //cur1到了最后}while (cur2 != loop2) {n--;cur2 = cur2.next;//cur2到了最后}if (cur1 != cur2) {  //如果两者的最后一个节点都不相等,返回nullreturn null;}cur1 = n > 0 ? head1 : head2;   //通过n这个差值来定位长的链表是谁cur2 = cur1 == head1 ? head2 : head1; //通过cur1长的旋转来判断cur2短的选择n = Math.abs(n);while (n != 0) {  //让长的先走n步n--;cur1 = cur1.next;}while (cur1 != cur2) { //两个一起走cur1 = cur1.next;cur2 = cur2.next;}return cur1;//相遇的时候返回变量}

两个都有环的解法

有三种情况:第一个头:head1,第一个环loop1.第二格一样
第一种:66型,不想交,loop1 != loop2
第二章:就是无环链表的尾巴多个环,按照无环链表判断即刻
第三种:两根鞭子型,两个链表交于一个圆loop1 == loop2

public static Node bothLoop(Node head1, Node loop1, Node head2, Node loop2) {Node cur1 = null;Node cur2 = null;if (loop1 == loop2) { //如果环相等对应图2  , 然后和上面无环一样cur1 = head1;cur2 = head2;int n = 0;while (cur1 != loop1) {n++;cur1 = cur1.next; //cur1到了最后}while (cur2 != loop2) {n--;cur2 = cur2.next;//cur2到了最后}cur1 = n > 0 ? head1 : head2;   //通过n这个差值来定位长的链表是谁cur2 = cur1 == head1 ? head2 : head1; //通过cur1长的旋转来判断cur2短的选择n = Math.abs(n);while (n != 0) {  //让长的先走n步n--;cur1 = cur1.next;}while (cur1 != cur2) { //两个一起走cur1 = cur1.next;cur2 = cur2.next;}return cur1;//相遇的时候返回变量} else {  //否则判断是图1还是图3cur1 = loop1.next;while (cur1 != loop1) {//loop1跑if (cur1 == loop2) { //如果跑的过程遇见loop2return loop1; //那就返回}cur1 = cur1.next;}return null; //loop1跑完了还没找到,那就返回null}}

在这里插入图片描述
在这里插入图片描述

http://www.lbrq.cn/news/774685.html

相关文章:

  • 湖南专业建站按效果付贿/巨量引擎广告投放平台登录入口
  • 做的网站第二年续费多钱/佛山网站建设
  • 东莞网站建设 牛魔网/seo优化教程
  • 请问婚庆网站建设该怎么做呢/一键注册所有网站
  • 营销网站策划/网络营销课程介绍
  • idea 做网站登录/网上开店如何推广自己的网店
  • 公司做网站怎么推广/百度教育app
  • 有没有什么专门做兼职的网站/新冠疫情最新情况
  • 做调查赚钱网站有哪些/关键词有几种类型
  • 重庆网站建设aiyom/百度风云榜游戏
  • 时时彩做假网站怎么做/seo是广告投放吗
  • 云南网站建设优化/系统开发
  • 怎么做企业官方网站/千锋教育培训机构地址
  • 怎么添加字体到电脑wordpress/萧山区seo关键词排名
  • 内部优惠券网站建站/深圳搜索引擎优化seo
  • ie浏览器哪个做网站稳定/网络广告代理
  • 酒店网站建设策划书怎么写/搜狗seo培训
  • 品牌自适应网站建设/百度服务中心电话
  • 网站建设咨询话术技巧/军事新闻头条
  • 网站中怎么做下载链接/网络推广需要多少费用
  • 怎样给网站做一张背景/乔拓云智能建站
  • 怎么入侵网站后台管理/百度竞价推广开户联系方式
  • 受欢迎的天津网站建设/超级seo外链
  • 网站开发需要的编程软件/网站外链推广平台
  • 哈尔滨营销型网站建设/发广告平台有哪些免费
  • 如何做病毒视频网站/济南做网站公司
  • 做网站与不做网站的区别/建站推广
  • 有做门窗找活的网站吗/关键词优化的作用
  • 网页游戏排行大全/seo推广一个月见效
  • 网站建设的话术/东莞好的网站国外站建设价格
  • 前端css学习笔记3:伪类选择器与伪元素选择器
  • Gartner 《IAM for LLM-Based AI Agents》学习心得
  • 【oracle闪回查询】记录字段短时间被修改的记录
  • 【Linux】程序地址空间
  • 纯CSS+JS制作抽奖大转盘
  • wrap cpp variant as dll for c to use