题解 | #两个链表的第一个公共结点#

两个链表的第一个公共结点

https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46

python3,除了双指针之外的解法。
先计算长度,再决定谁先走多少步。空间复杂度就是O(max(m,n))
class Solution:
    def FindFirstCommonNode(self, pHead1, pHead2):
        a, b = 0, 0
        def length(head):
            if not head:
                return 0
            return 1 + length(head.next)
        a = length(pHead1)
        b = length(pHead2)
        a = a - b
        if a > 0:
            while pHead1 != pHead2:
                if a <= 0:
                    pHead2 = pHead2.next
                a = a - 1
                pHead1 = pHead1.next
        else:
            while pHead1 != pHead2:
                if a >= 0:
                    pHead1 = pHead1.next
                a = a + 1
                pHead2 = pHead2.next
        return pHead1


全部评论

相关推荐

27届毕业,最近想找一段大厂实习,感觉简历有些问题,好多都不给面,求大佬们指点,最近好焦虑
重生之我学Java干...:我从后端的角度分析一下你的第一个项目,我感觉亮点不是很突出。因为我是因为组内有需求,临时上手学react干活。我用到的技术基本就cover你那个智慧园区管理平台的很多亮点了。那作为比较专业的前端,你上述的内容是不是有点单薄呢。感觉还得包装
点赞 评论 收藏
分享
10-09 16:12
门头沟学院 Java
帅宇殿下:佬,简历写的什么
点赞 评论 收藏
分享
已注销:bro不如吃顿疯狂星期四
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务