C语言:相交链表

 Lei宝啊:个人主页

愿美好与我们不期而遇


题目:

描述

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

接口

struct ListNode *getIntersectionNode

(struct ListNode *headA, struct ListNode *headB) { }

示例

思路 

走差距步,比地址不比值

可以想象的到,如果长的和短的一起走,走到相等的值不就是相同节点吗?

但是也可能会出现这种情况:

那么这样的话,比值就不可行了,但是如果节点相交,他们的地址一定是相同的 。

也由此,我们可以通过最后的一个节点判断他们是否相交,如果他们最后一个节点地址相同,则相交,我们去找相交节点,否则返回NULL。

实现代码

    int lenA = 1;int lenB = 1;struct ListNode* curA = headA;while(curA->next){lenA++;curA = curA->next;}struct ListNode* curB = headB;while(curB->next){lenB++;curB = curB->next;}if(curA != curB)return NULL;struct ListNode* fast = headA;struct ListNode* slow = headB;if(lenA < lenB){fast = headB;slow = headA;}int k = abs(lenA-lenB);while(k--){fast = fast->next;}while(fast != slow){if(fast == slow)return fast;fast = fast->next;slow = slow->next;}return fast;

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

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

相关文章

ensp-DHCP服务实验

ensp-DHCP服务实验 日期&#xff1a;6-26 &#x1f4ce;DHCP服务器.zip&#x1f4ce;dhcp服务作业.docx

C++笔记之从数组指针到函数数组指针(使用using name和std::function)

C笔记之从数组指针到函数数组指针(使用using name和std::function) 参考笔记&#xff1a; C之指针探究(三)&#xff1a;指针数组和数组指针 C之指针探究(十三)&#xff1a;函数指针数组 C之指针探究(二)&#xff1a;一级指针和一维数组 C之指针探究(十一)&#xff1a;函数名的…

Python语法:... for ... in ... if ...

Python中&#xff0c;for...in...[if]...语句是一种简洁的构建List的方法&#xff0c;从for给定的List中选择出满足if条件的元素组成新的List&#xff0c;其中if是可以省略的。下面举几个简单的例子进行说明 [for in ]: ...for ....in..... 语句. 实例如下&#xff1a; (1) …

Blazor前后端框架Known-V1.2.10

V1.2.10 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazo…

常见Charles在Windows10抓包乱码问题

废话不多说 直接开整 最近反复安装证书还是乱码 网上各种百度还是不行 首先计算机查看安装好的证书 certmgr.msc 找到并删除掉 重新安装证书 具体解决方法&#xff1a; 第一步&#xff1a;点击 【工具栏–>Proxy–>SSL Proxying Settings…】 第二步&#xff1a;配置…

大量的单号中如何查询问题件

随着时代发发展物流行业也越来越大&#xff0c;市面快递公司也越来越多&#xff0c;有些商家他们会同时发货多家快递&#xff0c;包括一些快递网点&#xff0c;他们每天接收快递也是多家呢&#xff0c;每天还要查下哪些单号客户已取收&#xff0c;还些单号是退回件等&#xff0…

go语言使用chan的小技巧

技巧1&#xff1a;关闭某个chan时&#xff0c;所有读取该chan的协程都会收到通知 注意事项&#xff1a;是直接关闭chan就可以了&#xff0c;不需要向这个协程内压入数据&#xff0c;因为压入数据的话最终还得关闭chan 举例&#xff1a;如果协程A希望协程B在处理完某个事情后自…

关于VScode解析leveldb的namespace报错

发现 VScode 读取 leveldb 的代码&#xff0c;其中 port 命名空间始终解析不了…然后试了很多 include 方法都没有效果 最终去找其头文件port. 发现是需要进行宏定义…

神码ai伪原创工具【php源码】

大家好&#xff0c;小编为大家解答python炫酷烟花表白源代码的问题。很多人还不知道html代码烟花特效python&#xff0c;现在让我们一起来看看吧&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 目录 前言 环境准备 代码编写 效果展示 前言 Python实现浪漫的烟花特效 现在…

Django架构图

1. Django 简介 基本介绍 Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架 使用 Django&#xff0c;只要很少的代码&#xff0c;Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容&#xff0c;并进一步开发出全功能的 Web 服务 Django 本身…

uniapp引入inconfont自定义导航栏

app,h5端引入 uniapp本身的全局设置中有个iconfontsrc属性 所以只需要 1.iconfont将需要的icon添加至项目 2.下载到本地解压后,将其中的ttf文件,放在static静态目录下 3.在page.json中对全局文件进行配置tabBar(导航图标) “iconfontSrc”: “static/font/iconfont.ttf”, …

Stripe订阅支付和WebHook事件

&#xff08;哪里有天才&#xff0c;我是把别人喝咖啡的功夫都用在工作上的。——鲁迅&#xff09; stripe Stripe是由20多岁的两兄弟Patrick Collison和John Collison创办的Stripe为公司提供网上支付的解决方案。Stripe向服务的公司收取每笔交易的2.9%加上30美分的手续费 订…