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

noip免费域名申请网站搜索引擎优化

noip免费域名申请,网站搜索引擎优化,上海外贸论坛,wordpress取消邮件验证相交链表 题解1 快慢双指针改进 (acb bca)题解2 哈希表(偷懒) 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 题目数据 保证 整个链式结构中不存在环。 注意&#xff…

相交链表

    • 题解1 快慢双指针
    • 改进 (a+c+b = b+c+a)
    • 题解2 哈希表(偷懒)

给你两个单链表的头节点 headAheadB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null

在这里插入图片描述
题目数据 保证 整个链式结构中不存在环。

注意,函数返回结果后,链表必须 保持其原始结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提示:

  • listA 中节点数目为 m
  • listB 中节点数目为 n
  • 1 <= m, n <= 3 ∗ 1 0 4 3 * 10^4 3104
  • 1 <= Node.val <= 1 0 5 10^5 105
  • 0 <= skipA <= m
  • 0 <= skipB <= n
  • 如果 listA 和 listB没有交点,intersectVal 为 0
  • 如果 listA 和 listB 有交点,intersectVal == listA[skipA] == listB[skipB]

进阶:你能否设计一个时间复杂度 O(m + n) 、仅用 O(1) 内存的解决方案?
(两个链表各遍历一次,空间不随元素个数变化)

题解1 快慢双指针

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* tmpA = headA;ListNode* tmpB = headB;int Alen = 0;int Blen = 0;while(tmpA){Alen ++;tmpA = tmpA->next;}while(tmpB){Blen ++;tmpB = tmpB->next;}ListNode* fastNode = Alen >= Blen ? headA : headB;ListNode* slowNode = Alen < Blen ? headA : headB;int diff = abs(Blen - Alen);while(diff--)fastNode = fastNode->next;while(fastNode){if(fastNode == slowNode)return fastNode;else{fastNode = fastNode->next;slowNode = slowNode->next;}}return NULL;}
};

在这里插入图片描述

改进 (a+c+b = b+c+a)

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* tmpA = headA;ListNode* tmpB = headB;// 假设相交 设相交前A长a B长b// 设C点相交 设从C点到list尾结点长c// a+c+b = b+c+a 如果相交 则遍历这么多元素后 会回到C点// 操作上:tmpA指到尾 改指tmpBwhile(tmpA != tmpB){tmpA = tmpA == nullptr ? headB : tmpA -> next;tmpB = tmpB == nullptr ? headA : tmpB -> next;}return tmpA;}
};

题解2 哈希表(偷懒)

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

在这里插入图片描述

http://www.yayakq.cn/news/418781/

相关文章:

  • 网站开发前端工程师wordpress 中英文站点
  • 湖南网站建设方案优化网页打不开connectionerror手机
  • 保定 网站制作 招聘响应式网站建设效果
  • 有啥网站是专做时尚穿搭软件开发去哪里学
  • 电脑网站建设在哪里开源cms下载
  • 齐诺网站建设ip子域名二级域名解析
  • 林州市网站建设昆明网站开发公司哪家好
  • wordpress 插件_深圳百度网站优化
  • 兴宁市网站建设网站建设案例收费情况
  • 安顺网站设计劳动局免费咨询律师电话
  • 前端开发兼职的未来发展网站优化检测
  • 上海网站建设哪家专业广东品牌网站建设公司
  • 3d云打印网站开发李沧做网站公司
  • 网站建设论文致谢西安黄页
  • 天猫代运营佛山网站建设优化
  • 做高端网站建设太原网站建设培训班
  • 做网站需要准备的东西金华市建设监理协会网站
  • 258做网站怎么样商务邮箱注册
  • 建设一个视频网站需要什么自己公司做公益网站怎么弄
  • 做外贸在什么网站上比较好网页游戏传奇盛世2
  • wordpress建站有广告吗平面设计最好的网站
  • 用脚手架如何搭建项目做网站创建一个自己的公司翻译
  • p2c网站方案商城微信网站怎么做
  • 做网站一般用什么配置的电脑wordpress主题淘宝客
  • 郑州商务网站建设wordpress 酷炫分页
  • 东莞广告公司东莞网站建设网站前端设计要做什么的
  • 做代理网站盐渎网
  • 创网站多少钱关于做公司app的软件或网站
  • 下饶网站建设怎么在建设银行网站购买国债
  • 留学网站建设多少钱网站开发服务商