160 相交链表

在这里插入图片描述
解题思路:
\qquad 若两个链表a, b相交,则它们之间的区别就仅在于相交节点之前的部分(其实任意两个链表最终都会相交,最坏相交于NULL节点)。一开始的思路:
\qquad\qquad\qquad 1、找到两个链表较长的那个;
\qquad\qquad\qquad 2、找到两个链表的长度之差;
\qquad\qquad\qquad 3、较长的链表经过差值处理后,遍历两链表检查是否存在相交点。

\qquad 这个思路虽然可行,但略显繁琐。对于不同的情况需要分类讨论,因而导致代码写起来非常复杂。不过,无论是a长,还是b长,a+bb+a 总是一样长。

优化思路
\qquad 同时遍历a, b两个链表,直到它们遇到相交节点(node_a == node_b),或NULL
\qquad 如果在相交前,到达了链表末尾,则下一节点将是另一条链表的起始节点。

\qquad 由于 a + b = b + a,若两链表不相交,两指针最终一定会同时到达NULL,若相交,相交节点到NULL的距离相等,指针能同时到达。这种交叉遍历的方式,巧妙兼容了a长还是b长的问题。

优化代码
\qquad 使用 ( Z ) ? X : Y 句式完成简单的if{} else{}替换,进一步简化代码。

class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode * a = headA;ListNode * b = headB;while (a != b){a = (a == NULL) ? headB : a->next;b = (b == NULL) ? headA : b->next;}return a;}
};

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

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

相关文章

手势监听类GestureDetector Listener源码解析

手势监听类GestureDetector 前言一、GestureDetector是什么?二、Listener源码解析1.OnGestureListener2.OnDoubleTapListener3.OnContextClickListener4.SimpleOnGestureListener 总结 前言 在写自定义view的时候,涉及到了手势监听这块的知识&#xff0…

linux之下安装 nacos

1 下载地址 也可使用在线下载wget https://github.com/alibaba/nacos/releases/download/1.4.6/nacos-server-1.4.6.tar.gzTags alibaba/nacos GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud nativ…

priority_queue模拟实现

目录 仿函数 模拟实现 结果 大根堆 小根堆 完整代码 priority_queue.h test.c 仿函数 仿函数的通俗定义:仿函数(functor)又称为函数对象(function object)是一个能行使函数功能 的类。仿函数的语法几乎和我们…

数组题目:118. 杨辉三角 、 119. 杨辉三角 II 、661. 图片平滑器 、598. 范围求和 II 、 419. 甲板上的战舰

118. 杨辉三角 思路: 找规律,每一行的第一个元素和最后一个元素都是1,其中中间需要改变的数找对应的规律 比如第二行(从0开始)的2,是dp[1][0] dp[1][1]。类似的找出对应的规律 代码: clas…

2024年软考证书有什么作用?哪个科目比较好考?

1、软考证书可以帮助评职称,可聘任工程师职务,评上了职称对于升职加薪是有好处的。 2、在一些大城市有“积分落户”政策,有了相应的软考证书可以帮助落户申请加分,对于想要在大城市落户的朋友也是有帮助的。 软考的中级证书是很…

OSG编程指南<三>:利用Cmake+VS2019+OSG3.6.5编译osgVerse

目前osgearth的ralease版本和debugx64都已经编译过了并且自测可用,放到资源里osgearth下载,供需要的朋友下载参考。环境配置:win10VS2017OSG3.6.4OSGEarth2.10.2, 1、配置OSG环境 编译好osg,然后在系统变量中配置如下…

WordPress:构建强大的网站和博客的完美选择

WordPress:构建强大的网站和博客的完美选择 一、WordPress 简介1.1 WordPress 介绍1.2 WordPress 优势 二、部署LNMP环境2.1 前提条件2.2 关闭防火墙和SELinux2.3 安装Nginx2.4 安装MySQL2.5 安装PHP2.6 配置Nginx2.7 配置MySQL2.8 配置PHP2.9 测试访问LNMP平台 三、…

必应的下一个十年:穿越创新的奇点时刻

2023年是微软搜索引擎必应进入中国市场十周年,2024年也将迎来必应上市十五周年。对于风起云涌的互联网公司来说,十年到十五年是一个相当长的创新周期。而在2023年初,以GPT为代表的大语言模型横扫全球科技产业,也对互联网和云计算带…

振南技术干货集:FFT 你知道?那数字相敏检波 DPSD 呢?(2)

注解目录 1 、DPSD 的基础知识 1.1 应用模型 1.2 原理推导 1.3 硬件 PSD (相敏检波,就是从繁乱复杂的信号中将我们关心的信号检出来,同时对相位敏感。 数学原理,逃不掉的,硬着头皮看吧。) 2 、DPSD …

R语言阶段复习一

创建一个长度为7的字符向量,元素为"A", "B", "C", "D", "E", "F", "G",并命名为vec1。 创建一个因子,包含6个水果:"apple", "banana"…

vue.js+ElementUi+springboot大学生新生报到管理系统_gxty6

新生报到管理系统的开发过程中,采用B / S架构,结合最新流行的SpringMVC和Mybatis的springboot框架技术。 1.前后端分离项目,前端使用vue框架 2.后端使用Java编程语言的Springboot框架 3.项目中登录模块用到token 4.源码包部署调试 5.每个笔记…

解决OSError: [Errno 28] No space left on device报错和搭建AIrtest无线配置手机集群

OSError: [Errno 28] No space left on device和搭建AIrtest无线配置手机集群 做手机无限集群控制时,常常遇到这种错误问题。表示您的设备上没有足够的可用磁盘空间来完成某个操作。我们遇到了还得重新开端口和输入ip,如果有几百台手机是不是中午就不吃…