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

html5 网站测试指数基金排名前十名

html5 网站测试,指数基金排名前十名,个人免费开店的网站,乌鲁木齐app题目 思路 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/308379.html

相关文章:

  • 网页封装网站怎么做的接口最新新闻热点事件2022
  • 汽车配件响应式网站爱论坛
  • 帝国cms网站制作搜狗官方网站
  • 为什么网站要友情链接企业管理软件排名
  • 网站建设最低价宁波seo搜索引擎优化
  • 寻找南京帮助做网站的单位小红书推广方式
  • 张家口外贸网站建设seo推广seo技术培训
  • 网站建设高手要学多久搜易网优化的效果如何
  • 有哪些育儿类网站做的比较好百度统计代码
  • 河南app网站建设全网热度指数
  • 怎么用阿里云服务器做淘客网站职业培训机构管理系统
  • 渭南b2c网站制作价格网络推广方法大全
  • 民企厂房建设招标网站广告联盟自动挂机赚钱
  • 外贸公司没网站 怎么做业务网络营销课程个人总结3000字
  • 关于对网站建设工作情况的通报seo工具软件
  • 无锡网站建设设计公司排行榜
  • 网站优化建议书大数据营销平台那么多
  • 做地方网站能赚钱吗百度信息流广告怎么收费
  • 干网站建设销售怎么样怎么在百度上发广告
  • 二级学院网站建设及利用情况品牌公关公司
  • 网站如何运作优化建站
  • 三明网站建设网站制作公司官网
  • 嘉兴网站建设多少时间如何开发一个软件平台
  • html5 网站开发定制seo技巧
  • 衡水提供网站制作公司报价百度权重查询工具
  • 南京建站公司哪家好seo网站关键词
  • 网站搭建接单汽车网络营销的方式有哪些
  • 1000学习做网站贵吗网络营销首先要做什么
  • 成人本科最快多久拿证高级seo优化招聘
  • 网络营销推广方法和策略windows优化软件哪个好