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

购物网站模板免费下载博客seo优化技术

购物网站模板免费下载,博客seo优化技术,衡水市住房和城乡规划建设网站,网站 目录 结构题目 思路 1.哈希集合 因为要求是否存在相交节点,那么我们就可以利用哈希集合先将listA链表里面的所有数据存入,然后访问listB,判断其是否有节点在哈希集合中,若存在,则说明此节点为相交的节点。若遍历完之后仍没有发…

题目

思路

1.哈希集合

因为要求是否存在相交节点,那么我们就可以利用哈希集合先将listA链表里面的所有数据存入,然后访问listB,判断其是否有节点在哈希集合中,若存在,则说明此节点为相交的节点。若遍历完之后仍没有发现,则说明两个表之间不存在相交节点,返回nullptr即可。

2.双指针

首先进行条件判断,若headA和headB中有一个为空,则说明不可能有相交节点,直接返回nullptr即可。

接着用cur1和cur2变量用来遍历listA和listB链表,循环中用了三元运算符,就第一个来说,若cur1为空,则直接将cur1赋值为headB,若不为空,则继续往下移动。

第二个也是如此,那为什么这样就可以求出它们的相交节点呢?

假设链表 headA 的长度为 m,链表 headB 的长度为 n,且它们的交点之后的公共部分长度为 k

  • 当 cur1 遍历完 headA 后,它会开始遍历 headB,此时 cur1 已经走了 m 步。

  • 当 cur2 遍历完 headB 后,它会开始遍历 headA,此时 cur2 已经走了 n 步。

  • 当 cur1 和 cur2 都开始遍历对方的链表时,它们会在交点处相遇,因为此时 cur1 和 cur2 都走了 m + n - k 步。

如果两个链表没有交点,那么 cur1 和 cur2 最终都会指向 nullptr,此时返回 nullptr

下面举个例子来看就容易理解了

listA: A1 -> A2 -> A3 -> C1 -> C2 -> C3

listB: B1 -> B2 -> C1 -> C2 -> C3

  • 链表 listA 的长度为 m = 6

  • 链表 listB 的长度为 n = 5

  • 交点之后的公共部分长度为 k = 3(即 C1 -> C2 -> C3)。

运行过程:
  1. 初始化指针

    • cur1 指向 A1

    • cur2 指向 B1

  2. 遍历过程

    • cur1 依次遍历:A1 -> A2 -> A3 -> C1 -> C2 -> C3 -> nullptr

    • 当 cur1 到达 nullptr 时,它已经走了 m = 6 步,然后切换到 listB,继续遍历:B1 -> B2 -> C1

    • cur2 依次遍历:B1 -> B2 -> C1 -> C2 -> C3 -> nullptr

    • 当 cur2 到达 nullptr 时,它已经走了 n = 5 步,然后切换到 listA ,继续遍历:A1 -> A2 -> A3 -> C1

  3. 相遇点

    • 当 cur1 切换到 listB 后,它走了 m + n - k = 6 + 5 - 3 = 8 步。

    • 当 cur2 切换到 listA  后,它走了 n + m - k = 5 + 6 - 3 = 8 步。

    • 两者会在交点 C1 处相遇。

代码

1.哈希集合

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {unordered_set<ListNode*> s;while(headA){s.insert(headA);headA = headA->next;}while(headB){if(s.count(headB)){return headB;}headB = headB->next;}return nullptr;}
};

2.双指针

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {if(headA == nullptr || headB == nullptr)return nullptr;ListNode* cur1 = headA;ListNode* cur2 = headB;while(cur1 != cur2){cur1 = cur1==nullptr ? headB : cur1->next;cur2 = cur2==nullptr ? headA : cur2->next;}return cur1;}
};

http://www.dtcms.com/wzjs/131265.html

相关文章:

  • 做影视网站规模不大百度付费推广
  • 用什么网站做cpa网站流量查询工具
  • 怎么才能申请自己的网站如何创建一个自己的网站
  • 山东网站建设报价简述网站推广的意义和方法
  • 郑州做网站公司有多少品牌设计公司
  • 公司网站建设设计方案桌面百度
  • 网站出现死链怎么办网络事件营销案例
  • 请问番禺哪里有做网站的seo经验
  • 网站后台建设内容株洲seo优化报价
  • 临沂网站制作定制建网站流程
  • 微信小程序怎么批量删掉seo常用优化技巧
  • 江苏省建设工程质量监督站网站培训机构seo
  • 搭建网站哪个好如何提高自己在百度的排名
  • 一站式手机网站制作百度官网认证价格
  • 网络平台创建需要多少钱网络营销seo优化
  • 曲阜做网站百度统计代码安装位置
  • 新的龙岗网站建设百度关键词热度查询
  • 十堰网站建设价格重庆百度seo代理
  • php做的网站预览世界杯大数据
  • 兰州模板网站建设佛山关键词排名工具
  • 200M电信宽带做网站网店运营
  • 怎么样给公司做网站互联网营销师是什么
  • wordpress文章页修改seo优化搜索结果
  • 先做网站还是先收集样品培训总结怎么写
  • 国外wordpress电影模板seo网站分析工具
  • 长春网站建设首选网诚传媒深圳seo技术
  • 用空间做网站如何做好安全搜索推广渠道有哪些
  • 网站建立于网页设计网络推广平台有哪些?
  • 淮北电子商务网站建设厦门seo排名优化公司
  • 模板网站怎么做做网络推广为什么会被抓