进阶题解:链表相交,吊打代码随想录

2023-11-12

随想录解法:

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode* curA = headA;
        ListNode* curB = headB;
        int lenA = 0, lenB = 0;
        while (curA != NULL) { // 求链表A的长度
            lenA++;
            curA = curA->next;
        }
        while (curB != NULL) { // 求链表B的长度
            lenB++;
            curB = curB->next;
        }
        curA = headA;
        curB = headB;
        // 让curA为最长链表的头,lenA为其长度
        if (lenB > lenA) {
            swap (lenA, lenB);
            swap (curA, curB);
        }
        // 求长度差
        int gap = lenA - lenB;
        // 让curA和curB在同一起点上(末尾位置对齐)
        while (gap--) {
            curA = curA->next;
        }
        // 遍历curA 和 curB,遇到相同则直接返回
        while (curA != NULL) {
            if (curA == curB) {
                return curA;
            }
            curA = curA->next;
            curB = curB->next;
        }
        return NULL;
    }
};

我的解法;结构清晰,易读性高

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        int la = getLen(headA);
        int lb = getLen(headB);
        if(la>lb) return getInterNode(la-lb,headA,headB);
        else return getInterNode(lb-la,headB,headA);
    }
    int getLen(ListNode* head){
        int len = 0;
        while(head){
            len++;
            head = head->next;
        }
        return len;
    }
    ListNode* getInterNode(int gap,ListNode *Llong, ListNode *Lshort){
        while(gap--){
            Llong = Llong->next;
        }
        while(Llong){
            if(Lshort == Llong)return Llong;
            Llong = Llong->next;
            Lshort = Lshort->next;
        }
        return nullptr;
    }

};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进阶题解:链表相交,吊打代码随想录 的相关文章

随机推荐

  • MySQL删除数据库

    删除数据库是指在数据库系统中删除已经存在的数据库 数据库删除之后 原来分配的空间将被收回 需要注意的是 数据库删除之后该数据库中所有的表和数据都将被删除 因此删除数据库要特别小心 一 通过SQL语句 MySQL中 删除数据库通过SQL语句D
  • tensorflow学习(二)——训练分类时,对图像进行增强(基于tf.image存在的一些问题)

    0 写作目的 好记性不如烂笔头 1 图像分类时 图像的数据增强 在博主进行图像增强时 存在一些问题 和大家分享一下 1 1 使用tensorflow自带的读取图像函数存在的问题 如果采用直接读取图像的方式 使用tf image进行读取图像
  • zookeeper介绍

    1 简介 Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目 它主要是用来解决分布式应用中经常遇到的一些数据管理问题 如 统一命名服务 状态同步服务 集群管理 分布式应用配置项的管理等 Zookeeper 作为一个
  • Spring-Data-Jpa AuditingEntityListener @CreatedDate @LastModifiedDate 用法

    import com fasterxml jackson annotation JsonIgnoreProperties import org hibernate validator constraints NotBlank import
  • OpenStack学习笔记(二)计算服务NOVA

    本篇记录OpenStack的计算服务NOVA一些内容 很多看不懂 汗 只捡一小部分记录 一 逻辑图 OpenStack 计算服务NOVA 是基础设施服务IAAS的主要部分 采用Python实现 1 因为认证 与OpenStack 身份认证k
  • 如何将GB7714-2015格式的参考文献表转换为bib文件

    如何将GB7714 2015格式的参考文献表转换为bib文件 1 背景 latex使用参考文献是一个自动化的工作 但建立和维护bib文件其实一个长期的积累活动 有些参考文献的bibtex数据是存在 比如从各类学术网站上可以下载到 但有些网站
  • NIO-DO Java 线上笔试(编程)题,蔚来汽车

    NIO DO Java 线上笔试 编程 题 1 使用二分查找的方式来定位某一元素 2 请用你熟悉的开发语言 完成如下题目 输入 若干个集合 各集合中的元素不会重复 输出 求这些集合的笛卡尔积例如 输入 N个集合 这里N 3 a b x y
  • Laravel-Dcat-layer 手写的弹窗样式

    Dcat admin框架下重新写的弹窗样式 实现设置固定最大高度弹窗滚动 实现更好的页面效果 public function layer return lt lt
  • python使用KDDockWidget

    编译原理 KDDockWidget是一个C 库 通过shiboken转成python的绑定支持 针对特殊版本 需要在cmake文件中增加一些变量 注 本次编译 Qt版本统一指定为6 4 2 库支持Qt gt 5 12或6 2 0以上版本 下
  • yolov5数据集制作

    yolov5 数据集的格式 每个图像的标注信息存储在一个独立的txt文件中 每个txt文件的名称应该与其对应的图像名称相同 只是文件扩展名不同 例如 对于名为 image1 jpg 的图像 其标注信息应存储在名为 image1 txt 的t
  • FPGA微型板Verilog简单音频

    简单音调生成 该模块通过使用一个计数器生成一个1 kHz的信号 该计数器在CLK的每个刻度上都递增 当计数器达到32 000时 将切换输出BUZZER 并将计数器重置为0 音频输出 使用一个1 k 电阻器和一小段实心线将GPIO引脚P97和
  • Nginx多条件IF逻辑运算(与、或操作)不支持问题解决方法

    原文地址 Nginx多条件IF逻辑运算 与 或操作 不支持问题 BIGTREE Nginx配置不支持if条件的逻辑与 逻辑或运算 而且也不支持if嵌套 例如 if e request filename request uri apple b
  • 5 建立业务需求

    业务需求代表的是需求链的顶部 它们定义解决方案的愿景和实现该方案的项目范围 用户需求和功能需求和功能需求必须与业务需求建立的背景和目标保持一致 任何无助于项目达成业务目标的需求都不宜实现 如果项目没有清晰的定义和充分沟通方向 肯定会带来灾难
  • IDEA配置tomcat服务器

    需求背景 从Eclipse转IDEA后面对的第一个问题 就是要为IDEA配置tomcat服务 否则不可用 那么 功能需求 那么 该如何配置呢 1 点击 Edit Configurations 进入tomcat服务编辑页面 如下图所示 2 点
  • 漫谈数据库表设计及索引设计

    一 数据库表设计 在数据库表设计上有个很重要的设计准则 称为范式设计 什么是范式设计 范式来自英文Normal Form 简称NF MySQL是关系型数据库 但是要想设计 个好的关系 必须使关系满足一定的约束条件 此约束已经形成了规范 分成
  • 一阶RC低通滤波器(二)

    这篇文章补充下前面讲的一阶低通滤波器 在母线电压采样或是在电机的三相端电压采样时 往往是先分压 再经过RC低通滤波器 电路图如下 1 先求输出和输入的关系 Uao Ua 从上式可以看出系统相当于一个典型的一阶低通滤波器串联了一个R2 R1
  • python-opencv之形态学操作(腐蚀和膨胀)原理详解

    形态学操作作用 Removing noise Isolation of individual elements and joining disparate elements in an image Finding of intensity
  • frp login to server failed: i/o deadline reached

    使用kcp协议有时会出现这个问题 配置改为tcp即可
  • 【科研入门】会议、期刊、出版社、文献数据库、引文数据库、SCI分区、影响因子等基础科研必备知识

    大家好 我是洲洲 欢迎关注 一个爱听周杰伦的程序员 关注公众号 程序员洲洲 即可获得10G学习资料 面试笔记 大厂独家学习体系路线等 还可以加入技术交流群欢迎大家在CSDN后台私信我 本文目录 一 会议与期刊 二 如何辨别是否正规期刊or会
  • 进阶题解:链表相交,吊打代码随想录

    随想录解法 class Solution public ListNode getIntersectionNode ListNode headA ListNode headB ListNode curA headA ListNode curB