相交链表--力扣160

相交链表

  • 题目
  • 思路
  • C++代码

题目

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

图示两个链表在节点 c1 开始相交:

在这里插入图片描述

思路

求两个链表的相交结点,使用双指针法,求出两个链表的长度的差值gap,让长的那一个链表先走gap步,使两个链表对齐,然后同时移动两个链表,直到找到相等的结点为止。

C++代码

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* curA = headA;ListNode* curB = headB;//用于遍历的指针int lenA = 0;int lenB = 0;//两个链表的长度// 求链表A的长度while(curA != NULL) {lenA++;curA = curA->next;}// 求链表B的长度while (curB != NULL) { lenB++;curB = curB->next;}curA = headA;//返回开始位置curB = headB;if(lenA >= lenB){int gap = lenA -lenB;//两个链表的长度的差值while(gap--) curA = curA->next;while(curA != NULL){if (curA == curB) {return curA;}curA = curA->next;curB = curB->next;}}if(lenA < lenB){int gap = lenB - lenA;while(gap--) curB = curB->next;while(curB != NULL){if (curA == curB) {return curB;}curA = curA->next;curB = curB->next;}}  return NULL;}
};

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

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

相关文章

ATFX汇市:瑞士央行连续第二次降息,USDCHF猛涨

ATFX汇市&#xff1a;昨日15:30&#xff0c;瑞士央行公布利率决议结果&#xff0c;将政策利率下调0.25个百分点&#xff0c;至1.25%。瑞士央行在政策声明中提到&#xff1a;与上一季度相比&#xff0c;潜在的通胀压力再次下降&#xff1b;瑞士目前的通货膨胀主要是由国内服务价…

成都晨持绪:现在的抖音网店怎么做更快起店

在当今社交媒体的浪潮中&#xff0c;抖音已经成为一个不可忽视的电商平台。对于想要快速起步的抖音网店来说&#xff0c;掌握一些关键策略至关重要。 首要的是定位清晰。你的网店需要有一个鲜明的主题&#xff0c;这可以是某一特定领域的产品&#xff0c;如美妆、服饰或是手工艺…

【C语言】解决C语言报错:Use-After-Free

文章目录 简介什么是Use-After-FreeUse-After-Free的常见原因如何检测和调试Use-After-Free解决Use-After-Free的最佳实践详细实例解析示例1&#xff1a;释放内存后未将指针置为NULL示例2&#xff1a;多次释放同一指针示例3&#xff1a;全局或静态指针被释放后继续使用示例4&am…

支付宝H5支付

业务场景&#xff1a;需要再手机端H5使用支付宝的支付&#xff01; 第一步&#xff1a; 开通支付宝商户,支付宝开放平台地址放在这里了。 第二步&#xff1a; 创建应用开通支付产品功能&#xff1a; 创建应用就不单一切图了&#xff01;登录账户-管理中心就能看到-选择网页…

力扣1793.好子数组的最大分数

力扣1793.好子数组的最大分数 对于每个数 求其左右两侧小于它高度的元素下标(单调栈) class Solution {public:int maximumScore(vector<int>& nums, int k) {int n nums.size();vector<int> left(n,-1);stack<int> st;for(int i0;i<n;i){while(!…

一文读懂过零检测电路的作用、电路原理图及应用

过零检测电路是一种常见的应用&#xff0c;其中运算放大器用作比较器。它通常用于跟踪正弦波形的变化&#xff0c;例如过零电压从正到负或从负到正。它还可以用作方波发生器。过零检测电路有许多应用&#xff0c;例如标记信号发生器、相位计和频率计。#过零检测电路#可以采用多…

TextEdit

QTextCursor cursor ui->textEdit->textCursor(); cursor.insertText("hello"); ui->textEdiet->append("hello"); QString text ui->textEdit->textCursor().selectedText();

我的python-web基础(Flask前后端不分类)

1.HTML HTML是超文本标记语言 &#xff08; 英文 &#xff1a; HyperText Markup Language &#xff0c; HTML &#xff09;&#xff0c;它不是编程语言&#xff0c;而是一种标记语言 HTML标记标签通常被称为HTML标签&#xff0c;它的特点如下&#xff1a; HTML标签是由尖括…

最火AI角色扮演流量已达谷歌搜索20%!每秒处理2万推理请求,Transformer作者公开优化秘诀

卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践&#xff0c;基于大语言模型和RAG技术&#xff0c;集合海量工业领域生态资源方优质产品和知识服务&#xff0c;旨在通过智能搜索、连续交互&#xff0c;实时生成个性化的内容…

「树莓派入门」树莓派简介

树莓派入门篇 - 树莓派简介 引言 树莓派&#xff0c;这个名字听起来是不是有点可爱又神秘&#xff1f;其实&#xff0c;它是一种功能强大的小型计算机&#xff0c;尺寸小巧&#xff0c;却能完成许多让人惊叹的任务。在本教程中&#xff0c;我们将一起探索树莓派的世界&#x…

Qt制作程序启动界面类QSplashScreen实例测试详解

目录 一、QSplashScreen的概述 二、QSplashScreen静态图片加载 1、主程序实现 2、mainwindow.h实现 3、mainwindows.cpp实现 三、QSplashScreen动态图片加载 1、主程序实现 2、mainwindow.h实现 3、mainwindows.cpp实现 一、QSplashScreen的概述 QSplashScreen&#x…

揭秘Xinstall如何助力App推广,提升用户量与转化率双指标!

在移动互联网时代&#xff0c;App的推广与运营成为了每个开发者必须面对的重要课题。然而&#xff0c;推广效果的评估和优化往往令众多开发者头疼不已。今天&#xff0c;我们将为您揭秘一款能够解决这一痛点的利器——Xinstall&#xff0c;带您一起探讨它如何助力App推广&#…

ARM32开发--存储器介绍

知不足而奋进 望远山而前行 目录 文章目录 前言 存储器分类 RAM ROM EEPROM Flash 总结 前言 在现代计算机系统中&#xff0c;存储器扮演着至关重要的角色&#xff0c;不仅影响着数据的存取速度和稳定性&#xff0c;还直接关系到计算机系统的性能和应用场景的选择。存…

密码CTF(4)——e和phi不互素

参考 RSA中e和phi不互素 AMM算法 AMM算法简要理解 RSA系列解题研究——e与phi不互素 - 先知社区 (aliyun.com) e与phi不互素 --- 四 1 1 1道题详记-CSDN博客 总述 gcd(e,φ(n))比较小时可以考虑iroot直接开根&#xff0c;当直接开根跑不出来时&#xff0c;考虑有限域…

redis哨兵模式下业务代码连接实现

目录 一&#xff1a;背景 二&#xff1a;实现过程 三&#xff1a;总结 一&#xff1a;背景 在哨兵模式下&#xff0c;真实的redis服务地址由一个固定ip转变为可以变化的ip,这样我们业务代码在连接redis的时候&#xff0c;就需要判断哪个主redis服务地址&#xff0c;哪个是从…

MySQL权限USAGE和ALL PRIVILEGES的含义和用法

USAGE 含义&#xff1a;USAGE权限是一个非常基础的权限&#xff0c;它实际上并不赋予用户执行任何数据库操作的权限&#xff0c;如查询、插入、更新或删除数据等。它的主要目的是允许用户连接到MySQL服务器&#xff0c;但除此之外没有其他操作权限。当你只想让用户能够登录到数…

a multiple definition link error when using gcc10.3.1

1 环境说明 硬件环境&#xff1a;LS1046A arm64 系统环境&#xff1a;openEuler release 22.03 (LTS-SP1) gcc10.3.1 2 问题现象 一个客户在设备上编译 Suricata 3.1.1 时发现链接时有很多 multiple definition 的错误&#xff0c; 类似如下&#xff1a; /usr/bin/l…

文件上传漏洞-上篇

一、概述 文件上传漏洞可以说是日常渗透测试中用得最多的一个漏洞&#xff0c;用它获得服务器权限最快最直接。在web程序中&#xff0c;经常需要用到文件上传的功能。如用户或者管理员上传图片&#xff0c;或者其它文件。如果没有限制上传类型或者限制不严格被绕过&#xff0c…

G1的收集流程

G1&#xff08;Garbage-First&#xff09;收集器的垃圾收集流程相对复杂&#xff0c;涉及多个阶段和算法。以下是G1收集器的基本收集流程&#xff1a; 初始标记阶段&#xff08;Initial Marking&#xff09;&#xff1a; 这是一个短暂的STW&#xff08;Stop-The-World&#xff…

大数据学习-Hive

介绍 分布式 SQL 计算 做数据的统计分析&#xff0c;SQL 是最方便的工具 在大数据中&#xff0c;有很多的统计分析场景&#xff0c;那么 SQL 来处理大数据是非常合适且频繁的 以后可能就是 SQL Boy 了&#xff0c;所以学习前需要有 MySQL 的基础 Hive 的功能 是一个分布式…