相交链表问题的算法

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


链表相交问题最暴力的方法就是一个一个比较找到交点,此法胜在简单粗暴但时间复杂度高

我们注意到两个链表虽然头不相同,但是共同一个尾,因此我们分别遍历两个链表,如果尾部相同则说明两个链表有交点,不相同则没有交点

同时我们开辟两个变量len1和len2分别计算headA和headB的长度,用totallen来存储两链表的长度差

当totallen>0时,headA的长度大于headB;因此headA可以遍历totallen次,使两链表的总长度一致,再同时遍历链表,当headA等于headB时是交点。

当totallen<0时,则相反,只需要将totallen取相反数,headA修改为headB就行(此时headB为长链表)

此法相较于第一种方法,胜在时间复杂度低,代码难度不高,掌握算法思想是核心

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值