当前位置: 首页 > news >正文

稀碎从零算法笔记Day19-LeetCode:相交链表

题型:链表基本操作

链接:160. 相交链表 - 力扣(LeetCode)

来源:LeetCode

题目描述

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

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

题目数据 保证 整个链式结构中不存在环。

注意,函数返回结果后,链表必须 保持其原始结构 。

题目样例

笔者这边为了方便理解,省略了原本的大部分文字描述。有需求的可以看原文链接

示例 1:

示例 2:

示例 3:

  • 1 <= m, n <= 3 * 104
  • 1 <= Node.val <= 105

 

题目思路

因为样例图自动【右端对齐】了,于是脑子抽掉,居然想直接遍历两个链表,如果指针相同就可以直接rt;

虽然被样图 ”误导“,但提前【右端对齐】的思路可以实现:①遍历链表获得两个链表的长度(为了方便理解以及实现,可领 listA 为长链表,这样 lena 的长度自然要大于 lenb 了),让 listA 提前跑lena-lenb个距离,这样就实现了两个链表的右端对齐,进而可以使用上面的思路了

C++代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {// 规定:链表A长度 > 链表B的长度ListNode *pa=headA,*pb=headB;int lena=0,lenb=0;while(pa != NULL){lena++;pa=pa->next;}while(pb != NULL){lenb++;pb=pb->next;}// 保证A链表一定是长链表,方便后续操作if(lena<lenb){swap(lena,lenb);swap(headA,headB);}pa=headA,pb=headB;for(int i=0;i<lena-lenb;i++){pa=pa->next;}while(pa !=NULL && pb!=NULL){if(pa==pb)return pa;pa = pa->next;pb = pb->next;}return NULL;}
};

结算页面

http://www.lryc.cn/news/321676.html

相关文章:

  • AI系统性学习03—ChatGPT开发教程
  • 每日一练 | 华为认证真题练习Day201
  • nginx日志统计qps
  • 9.登入页面
  • js封装SDK 在VUE、小程序、公众号直接调用js调用后端接口(本文以vue项目为例)
  • ideaSSM社区二手交易平台C2C模式开发mysql数据库web结构java编程计算机网页源码maven项目
  • 利用子类化技术拦截win32窗口各种消息(包括但不限于鼠标键盘消息)
  • HCIP—OSPF课后练习一
  • Android 13.0 kenel和frameworks中修改ram运行内存的功能实现
  • 如何将应用程序发布到 App Store
  • Python进程与线程开发
  • 【3DsMax】UVW展开——以制作牙膏盒为例
  • Mysql数据库概念与安装
  • 【Java - 框架 - SpringMVC】(01) SpringMVC框架的简单创建与使用,快速上手
  • 框架篇常见面试题
  • 【刷题】滑动窗口入门
  • 【Python 48小时速成 3】输入与输出
  • API开发小红书接口获得小红书笔记详情API接口请求接入演示
  • Python条件语句深度解析:从基础到应用的全面指南
  • 【leetcode热题】 地下城游戏
  • Centos7安装ffmpeg
  • 安卓面试题多线程 81-85
  • Java基础知识总结(8)
  • C++基础入门(命名空间,函数,引用)
  • 【译】矢量数据库 101 - 什么是矢量数据库?
  • Python Web开发记录 Day12:Django part6 用户登录
  • SpringTask实现的任务调度与XXL-job实现的分布式任务调度【XXL-Job工作原理】
  • 【java】图书管理系统
  • C#实现约瑟夫环算法
  • 游戏服务端配置“热更”及“秒启动”终极方案(golang/ygluu/卢益贵)