剑指Offer(36):两个链表的第一个公共结点

剑指offer(36):两个链表的第一个公共结点 一、引子 这个系列是我在牛客网上刷《剑指offer》的刷题笔记,旨在提升下自己的算法能力。
二、题目 输入两个链表,找出它们的第一个公共结点。
1、思路 如果存在共同节点的话,那么从该节点,两个链表之后的元素都是相同的。也就是说两个链表从尾部往前到某个点,节点都是一样的。
两条相交的链表呈y型。可以从两条链表尾部同时出发,最后一个相同的结点就是链表的第一个相同的结点。可以利用栈来实现。时间复杂度有o(m + n), 空间复杂度为o(m + n)
2、编程实现 python
代码实现方案:
# -*- coding:utf-8 -*-# class listnode:# def __init__(self, x):# self.val = x# self.next = noneclass solution: def findfirstcommonnode(self, phead1, phead2): # write code here if not phead1 or not phead2: return none #定义一个新的栈倒叙存放两个节点 stack1 = [] stack2 = [] while phead1: stack1.append(phead1) phead1 = phead1.next while phead2: stack2.append(phead2) phead2 = phead2.next first = none while stack1 and stack2: top1 = stack1.pop() top2 = stack2.pop() if top1 is top2: first=top1 else: break return first 分享技术,乐享生活:我们的公众号计算机视觉这件小事每周推送“ai”系列资讯类文章,欢迎您的关注!
本文由博客一文多发平台 openwrite 发布!

MTK一体机安卓主板|MT8735安卓工控主板开发方案
保证质量的同时 华为每30秒生产一台智能手机
SD-WAN组网的四种方案及其差异
一展看透显示触控材料发展现状 | 2023深圳国际全触与显示展汇聚产业热点新品!
华为手机全球份额反超苹果 小米去年全球投资金额达到58亿元
剑指Offer(36):两个链表的第一个公共结点
2020年7月,汽车产销保持两位数涨幅;乘用车延续增长态势
PCB设计总有几个阻抗没法连续的地方该怎么办?
程序员眼里的内存(中)
比特币常见的错误怎样去避免
全新iPad支持Apple Pencil与AR功能,是否能触动平板市场呢?
FDM 3D打印机堵头原因及解决方法
电池测试仪电路图分享
模拟量0-5v0-10v4-20mA转光端机光纤收发器
一文了解英特尔CPU接口的发展史
Teledyne新型SWIR线扫描相机可超出可见光的范围缺陷
又准又稳,让采样事半功倍!纳芯微推出全新隔离式Sigma-Delta调制器隔离采样芯片
小蚁室内云台摄像机H20GB即将发布 售价149元
电流互感器的接线方法
高德地图出骑行导航 骑友们可以爽了