LeetCode - 160. 相交链表(C语言,配图)

思路:

        1. 我们算出两个链表的长度lenA,lenB。我们在这里最后判断一下,两个链表的尾节点是否是一样的,如果是相交链表,那它们的尾节点一定是一样的。

        2. 算出长链表和短链表的差距n(n = | lenA- lenB |)

        3. 让较长的那个链表往后走n步

        4. 短链表的指针 和 长链表的指针处于相同的位置,同时往后走,找到第一个相同的节点。

代码:

        

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode* curA = headA;struct ListNode* curB = headB;int lenA =0;int lenB =0;//两个链表的长度while(curA){lenA++;curA = curA->next;}while(curB){lenB++;curB = curB->next;}//如果是相交链表,尾节点一定是同一个if(curA != curB){return NULL;}//利用假设法得出长链表和短链表struct ListNode* longlist = headA;struct ListNode* shortlist = headB ;if(lenA < lenB){longlist = headB;shortlist = headA;}//长链表的长度 - 短链表的长度int n = abs(lenA - lenB);while(n--){longlist=longlist->next;} //找出第一个相同的节点while(longlist != shortlist){longlist = longlist->next;shortlist = shortlist->next;}return shortlist;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/195554.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 自动化(十七)ORM操作

ORM-查询操作 查询简介 数据库的查询需要使用管理器对象 objects 进行 通过 自定义模型类.objects 管理器调用查询方法 查询方法 all()方法 概念与理解 用法&#xff1a;自定义模型类.objects.all()作用&#xff1a;查询自定义模型实体中所有的数据等同于 select * fr…

软件测试: 测试用例

一. 软件测试四要素 测试环境,操作步骤,测试数据,预期结果 二. 基于需求进行测试用例的设计 基于需求设计测试用例是测试设计和开发测试用例的基础,第一步就要分析测试需求,验证需求是否正确,完整,无二义性,并且逻辑自洽.在需求正确的基础上细化测试需求,从测试需求提炼出一…

DeepStream--测试resnet50分类模型

ResNet50是一种深度残差网络&#xff0c;50表示包含50层深度。该模型可以用于图像分类&#xff0c;物体检测等。 现在用DeepStream测试ResNet50分类模型。 1 资源 模型地址&#xff1a;https://github.com/onnx/models/blob/main/vision/classification/resnet/model/resnet…

介绍交换空间概念以及如何设置交换空间

文章目录 什么交换空间新增交换空间 什么交换空间 交换空间&#xff08;Swap space&#xff09;是计算机内存的一种补充&#xff0c;位于硬盘驱动器上。当物理内存不足时&#xff0c;系统会将不活跃的页面移到交换空间中。 交换空间可以帮助系统在以下情况下运行&#xff1a…

改进YOLOv8:结合ODConv构成C2f_ODConv:即插即用的动态卷积/可轻量化

🗝️YOLOv8实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv8:我的专业笔记与技术总结   -- YOLOv8轻松上手, 适用技术小白,文章代码齐全,仅需 …

阿坤老师的独特瓷器(Java详解)

一、题目描述 示例&#xff1a; 输入&#xff1a; 5 3 4 5 6 2 5 3 7 6 5 输出&#xff1a; 3 二、题解 思路分析&#xff1a; 题目要求我们计算出“独特瓷器”的个数&#xff0c;而“独特瓷器”是指对于瓷器A&#xff0c;没有另一个瓷器B&#xff0c;直径和高度都大于A。则…

股东入股可用的出资形式主要有哪些

股东入股&#xff0c;可用的出资形式主要包括货币以及实物、知识产权、土地使用权等可以用货币估价并可以依法转让的非货币财产。 第一&#xff0c;货币。设立公司必然需要一定数量的流动资金。以支付创建公司时的开支和启动公司运营。因此&#xff0c;股东可以用货币出资。 第…

深度学习:欠拟合与过拟合

1 定义 1.1 模型欠拟合 AI模型的欠拟合&#xff08;Underfitting&#xff09;发生在模型未能充分学习训练数据中的模式和结构时&#xff0c;导致它在训练集和验证集上都表现不佳。欠拟合通常是由于模型太过简单&#xff0c;没有足够的能力捕捉到数据的复杂性和细节。 1.2 模型…

Linux|僵死进程

1.僵死进程产生的原因或者条件: 什么是僵死进程? 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程. 简而言之,就是子进程先结束,并且父进程没有获取它的退出码; 那么僵死进程产生的原因或者条件就是:子进程先于父进程结束,并且父进程没有获取…

Activiti7工作流

文章目录 一、工作流介绍1.1 概念1.2 适用行业1.3 应用领域1.4 传统实现方式1.5 什么是工作流引擎 二、什么是Activiti7&#xff1f;2.1 概述2.2 Activiti7内部核心机制2.3 BPMN2.4 Activiti如何使用2.4.1 整合Activiti2.4.2 业务流程建模2.4.3 部署业务流程2.4.4 启动流程实例…

【Java 进阶篇】JQuery 事件绑定:`on` 与 `off` 的奇妙舞曲

在前端开发的舞台上&#xff0c;用户与页面的互动是一场精彩的表演。而 JQuery&#xff0c;作为 JavaScript 的一种封装库&#xff0c;为这场表演提供了更为便捷和优雅的事件绑定方式。其中&#xff0c;on 和 off 两位主角&#xff0c;正是这场奇妙舞曲中的核心演员。在这篇博客…

【C语言.oj刷题】有序#整型矩阵元素查找##{思路+C源码}

目录 题目信息 题目分析&#xff1a; 法一&#xff1a; 遍历二维数组&#xff08;低效&#xff09; 思路 源码 局限性 法二&#xff1a; 对每一行二分查找&#xff08;有所提效&#xff09; 思路 源码 局限性 法三&#xff1a; 利用一切有利条件使用二分查找 思路 …