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

罗山网站建设宿迁建设局网站拆除备案

罗山网站建设,宿迁建设局网站拆除备案,惠州市网站建设企业,太原网站网络推广摘要 剑指 Offer 52. 两个链表的第一个公共节点 一、双指针解法 使用双指针的方法#xff0c;可以将空间复杂度降至 O(1)。只有当链表 headA headB都不为空时#xff0c;两个链表才可能相交。因此首先判断链表 headA和 headB是否为空#xff0c;如果其中至少有一个链表为…摘要 剑指 Offer 52. 两个链表的第一个公共节点 一、双指针解法 使用双指针的方法可以将空间复杂度降至 O(1)。只有当链表 headA headB都不为空时两个链表才可能相交。因此首先判断链表 headA和 headB是否为空如果其中至少有一个链表为空则两个链表一定不相交返回 null。 当链表 headA和 headB 都不为空时创建两个指针pA 和pB初始时分别指向两个链表的头节点 headA和 headB然后将两个指针依次遍历两个链表的每个节点。具体做法如下 每步操作需要同时更新指针 pA 和 pB。如果指针 pA不为空则将指针 pA移到下一个节点如果指针 pB 不为空则将指针 pB 移到下一个节点。如果指针 pA 为空则将指针 pA移到链表headB 的头节点如果指针 pB为空则将指针 pB 移到链表 headA的头节点。当指针pA 和pB指向同一个节点或者都为空时返回它们指向的节点或者 null。package Linklist;import java.util.HashSet; import java.util.Set;/*** Classname JZ52两个链表的第一个公共节点* Description TODO* Date 2023/2/11 13:39* Created by xjl*/ public class JZ52两个链表的第一个公共节点 {public class ListNode {int val;ListNode next;ListNode(int x) {val x;next null;}}// 采用的是双指针的方式ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) {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;}// 使用的是双指针来实现ListNode getIntersectionNodecpoy(ListNode headA, ListNode headB) {if (headAnull|| headBnull){return null;}ListNode pAheadA;ListNode pBheadB;while (pA!pB){pApAnull?headB:pA.next;pBpBnull?headA:pB.next;}return pA;}}复杂度分析 时间复杂度O(mn)其中 m 和 n 是分别是链表headA 和 headB 的长度。两个指针同时遍历两个链表每个指针遍历两个链表各一次。空间复杂度O(1)。二、哈希集合解法 判断两个链表是否相交可以使用哈希集合存储链表节点。 首先遍历链表 headA并将链表 headA中的每个节点加入哈希集合中。然后遍历链表 headB对于遍历到的每个节点判断该节点是否在哈希集合中如果当前节点不在哈希集合中则继续遍历下一个节点如果当前节点在哈希集合中则后面的节点都在哈希集合中即从当前节点开始的所有节点都是两个链表的公共节点因此在链表 head 中遍历到的第一个在哈希集合中的节点就是两个链表的第一个公共节点返回该节点。 如果链表 headB中的所有节点都不在哈希集合中则两个链表不相交返回 null。 public ListNode getIntersectionNode2(ListNode headA, ListNode headB) {SetListNode visited new HashSetListNode();ListNode temp headA;while (temp ! null) {visited.add(temp);temp temp.next;}temp headB;while (temp ! null) {if (visited.contains(temp)) {return temp;}temp temp.next;}return null;} 复杂度分析 时间复杂度是O(mn), m、n分别是链表headA和headB的长度。需要遍历两个链表的各一次。空间复杂度m,m 是链表 headA的长度。需要使用哈希集合存储链表 headA中的全部节。 博文参考 《Leetcode》
http://www.dnsts.com.cn/news/41163.html

相关文章:

  • 专业网站建设的价格wordpress样式多的编辑器
  • 网站的建设维护推广网站百度收录
  • 西安自助建站哔哩哔哩网页版下载
  • 中国小康建设网站怎么做网站推广图片
  • 自己制作的网站上传到服务器后怎么原来的网页没有变wordpress收录p
  • wordpress还原恢复数据库网络优化岗位详细介绍
  • wordpress资讯网站模板做自己的网站的好处
  • 上海做宴会的网站wordpress低版本主题
  • 南阳建站公司深圳建站公司服务
  • 哈尔滨企业网站国家企业信用公示信息系统官网
  • 永年做网站多少钱怎么做售房网站
  • 建设手机银行的网站手机wordpress清除缓存
  • 百度网站解封专门做超市dm网站
  • 做企业内刊有哪些网站推荐外网网站建设
  • seo如何选择网站标题新品发布会手机
  • 自己建的网站如何做海外推广有哪些效果图做的好的网站
  • tk域名免费注册网站浙江网站建设价位
  • 自己搭建网站要钱吗博达高校网站群建设教程
  • 网站后台 模板深圳专业做网页的公司
  • 点击网站首页域名又添加一个开车搜索关键词
  • 地方房地产网站网络舆情分析报告
  • 杭州做外贸网站如何搜索到自己的网站
  • 张店网站制作网站建设网页
  • 哪种技术做网站容易论文答辩网站建设由几部分构成
  • 小型电商网站开发网页设计的制作流程
  • 网站集群系统建设2022小说排行榜百度风云榜
  • 网站备案 个人网站建设的分阶段步骤
  • php工具箱是直接做网站的吗信息网站建设费使用年限
  • 企业电商网站开发步骤1
  • 有关做美食的网站乐网站排名配色