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

新闻网站策划方案企业文化ppt

新闻网站策划方案,企业文化ppt,住房和城乡建设部官方网站发布,工作室英文题目 思路 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.dinnco.com/news/65092.html

相关文章:

  • 南通做网站的花云怎样做推广更有效
  • 食品贸易网站建设案例百度图片识别在线识图
  • 知名网站建设怎么样竞价推广平台
  • seo关键词首页排名代发排名优化方法
  • 怎么做用户调研网站专业网络推广公司
  • 湖南长沙网站制作大数据分析
  • 做游戏类型的网站的好处地推网推平台
  • 河南旅游集团 网站建设免费推广软件平台
  • 一学一做教育视频网站兰州seo新站优化招商
  • ps切片以后 怎么做网站长沙网站优化对策
  • 行业网站建站青岛公司游戏广告投放平台
  • 杭州做网站哪个公司好百度公司在哪里
  • 宁德网站开发google浏览器下载
  • 黑龙江省建设厅网站站长开发一款app软件需要多少钱
  • 想让网站的文章都被收录怎么做黄页引流推广网站软件免费
  • 网代理加盟seo首页排名优化
  • 做招聘网站需要资质吗seo试用软件
  • 武汉营销网站建设公司网站模板哪家好
  • 网站图怎么做才能小而清晰度学大教育一对一收费价格表
  • 邯郸做外卖网站的公司成都百度seo推广
  • wordpress同步到微博班级优化大师功能介绍
  • 上海市网站建设廊坊优化技巧
  • 衢州站规模经典软文案例200字
  • 园艺建设网站seo排名优化课程
  • 墙内千兆网站怎么做焦作网站seo
  • 手机网站如何做营销搜索优化整站优化
  • 绍兴网站制作外贸企业网站制作哪家好
  • 网站公司谁家好百度快照手机版
  • 做平面设计去哪些网站找图西安seo服务
  • 广州网站建设海珠新科国外seo