LeetCode160 相交链表
创始人
2024-11-20 13:35:28
0

前言

题目:160. 相交链表
文档:代码随想录——链表相交
编程语言: 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) {         ListNode* curA = headA;         ListNode* curB = headB;          int lenA = 0;         int lenB = 0;          while (curA) {             ++lenA;             curA = curA -> next;         }          while (curB) {             ++lenB;             curB = curB -> next;         }          curA = headA;         curB = headB;          if (lenB > lenA) {             swap(lenA, lenB);             swap(curA, curB);         }          int gap = lenA - lenB;          while (gap--) {             curA = curA -> next;         }          while (curA) {             if (curA == curB) {                 return curA;             }             curA = curA -> next;             curB = curB -> next;         }          return NULL;     } }; 
  • 时间复杂度: O ( m + n ) O(m + n) O(m+n)
  • 空间复杂度: O ( 1 ) O(1) O(1)

相关内容

热门资讯

什么是lst文件 .lst文件是一种列表文件,通常包含一系列文本或数据,用于存储和组织信息。这种文件格式常用于各种应用...
iwatch哪个版本好 iWatch即Apple Watch,不同版本适合不同需求。最新Series 7功能最全,但价格较高...
腾讯是什么端口 腾讯是一家中国领先的互联网服务公司,旗下拥有众多知名产品和服务,如社交平台微信和QQ、腾讯云、腾讯广...
5e对战平台如何快速升级 在5e对战平台快速升级,需要多玩游戏并提高自己的技能。通过获得高分数和胜利,可以提升等级。参加比赛和...
怎么给手机加密码的方法(手机加... 1. 数字密码:在设置中选择“锁屏和安全”或“安全”,然后选择“屏幕锁定方式”,输入4位或更多位数的...
推荐一款适合ps的笔记本电脑 适合PS的笔记本电脑应具备高性能处理器、大内存、高分辨率显示屏,推荐戴尔XPS 15,搭载i7处理器...
5e对战平台新手任务怎么完成-... 在5e对战平台,完成新手任务通常需进入相应任务页面,按照提示操作,如完成几局游戏、观看教程等。完成任...
苹果未受信任的企业级开发者在哪... 在设置中,选择“通用”-“描述文件”,找到对应的企业级应用,点击进入后,开启“信任”。苹果未受信任的...
5e对战平台怎么取回军需-取回... 在5e对战平台中,要取回军需,首先需要确保你的账户已经绑定了正确的Steam账号。进入平台的“库存”...
ipad怎么左右两个屏(平板分... 在iPad上进行分屏操作,首先确保你的设备支持多任务功能。打开第一个应用,从屏幕底部向上滑动,选择第...